संक्षेप में: CSV सबसे सरल संभव डेटा फ़ॉर्मैट जैसा लगता है, और यही ठीक कारण है कि छोटी असंगतियाँ — बिना कोट वाले टेक्स्ट फ़ील्ड के अंदर एक भटकी कॉमा, बेमेल डिलिमिटर, छिपा हुआ BOM — इंपोर्ट को फ़ेल कर देती हैं या कॉलम को चुपचाप गलत तरीक़े से संरेखित कर देती हैं। इस गाइड को Encoding Converter, Duplicate Finder, Remove Extra Spaces और Character Counter के साथ जोड़ें।

CSV के असली नियम RFC 4180 में परिभाषित हैं, हालाँकि व्यवहार में ज़्यादातर वास्तविक CSV इन्हें केवल ढीले ढंग से फॉलो करता है — जो ठीक ज़्यादातर इंपोर्ट समस्याओं का स्रोत है।

CSV इंपोर्ट वास्तव में कहाँ फ़ेल होते हैं

मूल समस्या: कॉमा एक साथ कॉलम डिलिमिटर और एक ऐसा कैरेक्टर है जो किसी टेक्स्ट फ़ील्ड के अंदर वैध रूप से दिख सकता है (एक पता, एक प्रोडक्ट विवरण जिसमें "छोटा, मध्यम, बड़ा" शामिल है)। RFC 4180 का जवाब कोटिंग है — किसी कॉमा वाले फ़ील्ड को डबल कोट्स में लपेटा जाना चाहिए, और कोटेड फ़ील्ड के अंदर एक शाब्दिक डबल कोट को इसे दोगुना करके एस्केप किया जाता है ("")। इस नियम का पालन किए बिना CSV एक्सपोर्ट करने वाला सॉफ़्टवेयर ऐसी फ़ाइलें बनाता है जहाँ एक बिना कोट वाला कॉमा हर आगे के कॉलम को चुपचाप एक पोज़िशन से खिसका देता है।

डिलिमिटर सार्वभौमिक नहीं हैं

कॉमा-सेपरेटेड डिफ़ॉल्ट धारणा है, लेकिन कई वास्तविक फ़ाइलें इसके बजाय सेमीकोलन का उपयोग करती हैं — विशेष रूप से उन क्षेत्रों में आम जहाँ कॉमा पहले से ही संख्याओं के लिए दशमलव सेपरेटर है, जिससे इसे कॉलम डिलिमिटर के रूप में फिर से उपयोग करना अस्पष्ट हो जाता है। एक CSV जो स्प्रेडशीट में एक अविभाजित कॉलम के रूप में खुलता है, वह अक्सर केवल उस टूल की धारणा के लिए ग़लत डिलिमिटर का उपयोग कर रहा होता है, वास्तव में टूटा नहीं होता।

एन्कोडिंग और अदृश्य BOM

एक UTF-8 बाइट ऑर्डर मार्क (BOM) — किसी फ़ाइल की बिल्कुल शुरुआत में तीन अदृश्य बाइट्स — कुछ टूल्स द्वारा (विशेष रूप से एक्सपोर्ट पर Excel) एन्कोडिंग का संकेत देने के लिए जोड़ा जाता है, लेकिन हर पार्सर इसे स्वतः नहीं हटाता। अगर छोड़ दिया जाए, तो यह अदृश्य रूप से पहले कॉलम के हेडर नाम से जुड़ सकता है, इसलिए शाब्दिक रूप से name नाम वाले किसी कॉलम की खोज विफल हो जाती है क्योंकि असली हेडर name है जिसकी शुरुआत में एक अदृश्य कैरेक्टर लगा है — एक ऐसा बग जिसे आँख से देखना वाक़ई मुश्किल है।

इंपोर्ट से पहले सफ़ाई का वर्कफ़्लो

  1. असली डिलिमिटर और कोटिंग जाँचने के लिए पहले रॉ फ़ाइल को प्लेन टेक्स्ट के रूप में खोलें (स्प्रेडशीट में नहीं, जो स्वतः इंटरप्रेट करता है और असली संरचना छुपा सकता है)।
  2. अगर कॉलम-नाम खोजें रहस्यमय ढंग से विफल हों तो पहले बाइट्स में BOM की जाँच करें।
  3. उन जगहों में विशेष रूप से बिना कोट वाले कॉमा की तलाश करें जो सिंगल टेक्स्ट फ़ील्ड होने चाहिए — कॉलम मिसअलाइनमेंट का सबसे आम कारण।
  4. ट्रेलिंग न्यूलाइन या ट्रेलिंग खाली रो की जाँच करें, जिसे कुछ इंपोर्ट टूल टूटे हुए अंतिम रिकॉर्ड के रूप में गिनते हैं।
  5. अगर डुप्लिकेट रिकॉर्ड आगे समस्याएँ पैदा करेंगे तो इंपोर्ट से पहले किसी कुंजी कॉलम (जैसे ID या ईमेल) पर Duplicate Finder चलाएँ।

बचने योग्य आम गलतियाँ

  • यह मान लेना कि हर CSV कॉमा उपयोग करता है — सेमीकोलन-सेपरेटेड फ़ाइलें आम हैं और तब तक एक जैसी दिखती हैं जब तक आप ग़लत कैरेक्टर पर विभाजित करने की कोशिश नहीं करते।
  • स्प्रेडशीट ऐप में CSV एडिट करना, जो चुपचाप तारीख़ों को फिर से फ़ॉर्मैट करता है, अग्रणी शून्य हटाता है, और टेक्स्ट को ऐसे तरीक़ों से फिर से एन्कोड कर सकता है जो ओरिजिनल से मेल नहीं खाते।
  • बिना किसी दृश्य कारण के हेडर-आधारित खोजें विफल होने पर लीडिंग BOM की जाँच न करना।
  • फ़्री-टेक्स्ट फ़ील्ड के अंदर बिना कोट वाले कॉमा को अनदेखा करना जब तक इंपोर्ट स्पष्ट रूप से खिसके हुए कॉलम न बना दे।

ज़्यादातर CSV इंपोर्ट विफलताएँ वास्तव में डेटा के बारे में नहीं होतीं — वे पार्सर की धारणाओं (डिलिमिटर, एन्कोडिंग, कोटिंग) के बारे में होती हैं जो फ़ाइल में वास्तव में मौजूद संरचना से मेल नहीं खातीं।