CSV ফাইল: টাইপ নেই, এনকোডিং নেই, কোনো কমিটিও নেই এমন ফরম্যাট
একটি CSV আসলে কী, একই ফাইল দুটি স্প্রেডশিটে কেন আলাদাভাবে খোলে, আর উদ্ধৃতির নিয়ম আসলে কী বলে। আপনার ব্রাউজারেই CSV রূপান্তর করুন, কোনো আপলোড ছাড়াই।
এক নজরে
- ধরন
- ডকুমেন্ট
- এক্সটেনশন
- .csv
- MIME টাইপ
- text/csv
একটি .csv ফাইল হলো একটি লেখার ফাইল। কোনো হেডার নেই, সংস্করণ নেই, টাইপের তথ্য নেই, বাইনারি কিছু নেই — Notepad-এ খুললে এর প্রতিটি বাইট দেখবেন। প্রতিটি লাইন একটি সারি, আর কিছু একটা ঘরগুলোকে আলাদা করে। পুরো ফরম্যাট এটুকুই, এ কারণেই সবকিছু এটি লিখতে পারে আর কোনো দুটি প্রোগ্রাম এর অর্থে একমত হয় না।
আরও পড়ুন
পঁচিশ বছর এর কোনো স্পেসিফিকেশন ছিল না। RFC 4180 আসে 2005 সালে আর স্পষ্টভাবে Informational, মানক নয় — এটি কাউকে কী করতে হবে তা না বলে বেশিরভাগ বাস্তবায়ন কী করে তা বর্ণনা করে। এটি যা আসলে মীমাংসা করে তা হলো উদ্ধৃতি: বিভাজক, উদ্ধৃতিচিহ্ন বা লাইন বিরতি থাকা একটি ঘর দ্বিগুণ উদ্ধৃতিতে মোড়া হয়, আর এমন ঘরের ভেতরের উদ্ধৃতিচিহ্ন দুবার লেখা হয়। “Widget, large” একটি ঘর থাকবে নাকি দুটি হবে, পার্থক্য এই নিয়মেই, আর সাদামাটা পার্সারগুলো ঠিক এই নিয়মটিই এড়িয়ে যায়।
বিভাজক নির্ভরযোগ্যভাবে কমা নয়। যে লোকেলে দশমিক 1,5 লেখা হয়, সেখানে চলা একটি স্প্রেডশিট কমা দিয়ে ঘর আলাদাও করতে পারে না, তাই সেখানে Excel সেমিকোলন এক্সপোর্ট করে — একই মেশিনে, একই মেনু থেকে, এমন ফাইল তৈরি করে যা পাশের দেশ খুলতে পারে না। ডেটাবেসের এক্সপোর্ট প্রায়ই ট্যাব ব্যবহার করে। CSV ভালোভাবে পড়ে এমন যেকোনো টুল প্রথম কয়েকটি লাইন দেখে অনুমান করে, আর এই সাইটও তা-ই করে।
কোনো এনকোডিংয়ের ঘোষণাও নেই, আর ডেটা আসলে এখানেই হারায়। এক প্রোগ্রামে সেভ করা চীনা নামের একটি CSV আরেকটিতে খুললে দুর্বোধ্য অক্ষর হয়ে ফেরে, কারণ একটি UTF-8 ধরে নিয়েছিল আর অন্যটি সিস্টেমের কোড পেজ। আর প্রতিটি ঘর যেহেতু টাইপহীন লেখা, ইমপোর্টের সময় স্প্রেডশিট আবার অনুমান করে: পার্ট নম্বর থেকে শুরুর শূন্য উধাও হয়, লম্বা আইডি বৈজ্ঞানিক নোটেশনে বদলায়, আর যা কিছু তারিখের মতো দেখায় তা তারিখ হয়ে যায়। ফাইলটি ঠিক ছিল; পড়াটা ঠিক ছিল না।
CSV-কে অন্য ফরম্যাটে রূপান্তর করুন
CSV: প্রায়ই জিজ্ঞাসিত প্রশ্ন
CSV কি শুধু একটি লেখার ফাইল?
হ্যাঁ, পুরোপুরি। কোনো কন্টেইনার নেই, কম্প্রেশন নেই, বাইনারি কিছু নেই। যেকোনো টেক্সট এডিটর এটি খোলে, আর যা দেখেন তা-ই এতে আছে।
আমার CSV সেমিকোলন ব্যবহার করে কেন?
কারণ এটি এমন লোকেলে এক্সপোর্ট হয়েছিল যেখানে কমা দশমিক বিভাজক, তাই কমা দিয়ে ঘর আলাদাও করা যেত না। এটি তবুও CSV, আর ব্যবহারের যোগ্য যেকোনো রিডার ধরে না নিয়ে বিভাজক শনাক্ত করে।
আমার শুরুর শূন্যগুলো উধাও হলো কেন?
কারণ CSV কোনো টাইপ রাখে না আর স্প্রেডশিট অনুমান করেছে। “007” সংখ্যার মতো দেখায়, তাই 7 হয়ে গেছে। ফাইলে কোনো ভুল ছিল না — ইমপোর্টই সিদ্ধান্ত নিয়েছে। বেশিরভাগ স্প্রেডশিট ইমপোর্টের সময় একটি কলামকে লেখা হিসেবে ঠিক করতে দেয়, আর এটাই একমাত্র নির্ভরযোগ্য সমাধান।
আমার চীনা লেখা দুর্বোধ্য কেন?
কারণ ফাইলটি তার এনকোডিংয়ের কোনো ঘোষণা বহন করে না আর যে প্রোগ্রাম খুলেছে সে লেখা প্রোগ্রামের থেকে আলাদা অনুমান করেছে। বাইট-অর্ডার মার্কসহ UTF-8 হিসেবে সেভ করলে Excel ঠিকঠাক পড়ে, বিনিময়ে এমন একটি চিহ্ন থাকে যা কিছু অন্য টুল বিক্ষিপ্ত অক্ষর হিসেবে দেখায়।
এখানে কি CSV থেকে PDF-এ রূপান্তর করা যায়?
হ্যাঁ। এটি কমা ধরে ভাগ না করে CSV হিসেবেই পার্স হয়, তাই উদ্ধৃত ঘর টিকে থাকে, আর কলামের প্রস্থ বিষয়বস্তু অনুযায়ী, হেডার সারি বোল্ড। আপনি যা পান তা পড়া আর ছাপার জন্য — PDF-এর কিছুই সাজানো বা যোগ করা যায় না।
Excel-এ রূপান্তরের কী হবে?
দরকার নেই: প্রতিটি স্প্রেডশিট অ্যাপ সরাসরি CSV খোলে, আর আগে রূপান্তর করলে কেবল একটি বাড়তি ধাপ যোগ হয় যেখানে টাইপ অনুমান করা হয়। এখানে যে রূপান্তর আছে তা উল্টো দিকের — PDF থেকে Excel, যা এমন একটি পৃষ্ঠা থেকে টেবিল আবার গড়ে যে কখনো টেবিল রেকর্ড করেনি।