एक्सेल सीएसवी और मानक सीएसवी के बीच सही अंतर


16

एक एक्सेल सीएसवी और एक मानक सीएसवी के बीच वास्तविक अंतर क्या है?

उदाहरण के लिए, जब एक सेल के अंदर लाइन टूटने वाले कॉलम को हैंडल करते हैं, तो वे इसे अलग तरीके से कैसे एनकोड करते हैं?

जवाबों:


19

यह पूरी तरह से इस बात पर निर्भर करता है कि आप "मानक" सीएसवी के रूप में क्या परिभाषित करते हैं। जहाँ तक मेरा सवाल है, एक्सेल RFC 4180 में उल्लिखित नियमों का अनुसरण करता है , "CSV फ़ाइलों के लिए सामान्य प्रारूप और माइम प्रकार"।

एक तालिका पर विचार करें जहां पहली पंक्ति में पहली सेल में दो लाइन ब्रेक हैं। एक्सेल में, यह निम्नलिखित की तरह दिखेगा:

+---+---------------+------------+------------+
|   | A             | B          | C          |
+---+---------------+------------+------------+
| 1 | col1, line1a  |            |            |
|   | col1, line1b  |            |            |
|   | col1, line1c  | col2, row1 | col3, row1 |
| 2 | col1, row2    | col2, row2 | col3, row2 |
+---+---------------+------------+------------+

अब, Excel इसे कैसे निर्यात करेगा? आइए देखें - एक पाठ संपादक इसे प्रदर्शित करेगा:

"col1, line1a
col1, line1b
col1, line1c","col2, row1","col3, row1"
"col1, row2","col2, row2","col3, row2"

बहुत परिष्कृत नहीं है। यह एक गाड़ी रिटर्न (हेक्स 0D) सम्मिलित करता है जहां लाइन ब्रेक हमारे सेल में था। हर सेल डबल कोट्स से घिरा हुआ है। इसके अलावा, वास्तविक पंक्तियों को एक गाड़ी वापसी के साथ अलग किया जाता है।

इसे सही ढंग से पार्स करने के लिए, एक सीएसवी पार्सर की आवश्यकता होगी

  • जब वह दोहरे कोट्स (यानी सेल) के भीतर दिखाई देती है तो उस गाड़ी की वापसी करें
  • इस बात को अनदेखा करें कि दोहरे उद्धरण के बाहर जब गाड़ी वापस आती है

यदि ऐसा नहीं हुआ, तो आप इस तरह से कुछ गड़बड़ कर देंगे - ध्यान दें कि अब दो के बजाय चार लाइनें हैं , क्योंकि यह लाइन ब्रेक को अनदेखा करने में विफल रहा।

+---+---------------+------------+------------+
|   | A             | B          | C          |
+---+---------------+------------+------------+
| 1 | "col1, line1a |            |            |
| 2 | col1, line1b  |            |            |
| 3 | col1, line1c" | col2, row1 | col3, row1 |
| 4 | col1, row2    | col2, row2 | col3, row2 |
+---+---------------+------------+------------+

लेकिन, आइए देखें कि आरएफसी क्या कहता है, शायद एक्सेल ने इसे सही किया?

लाइन विराम (CRLF), दोहरे उद्धरण और अल्पविराम वाले फ़ील्ड को दोहरे उद्धरणों में संलग्न किया जाना चाहिए।

नीट, बिल्कुल यही एक्सेल ने किया। इसलिए संक्षेप में, एक्सेल "मानक" सीएसवी फ़ाइल की सिफारिशों का पालन करता है। एक उचित CSV पार्सर को देखते हुए, यह Excel CSV फ़ाइलों को भी पढ़ने में सक्षम होना चाहिए।


@ शॉक: मैं सीएसवी पार्सर कार्यान्वयन को "सीएसवी" के साथ "एक्सेल" सीएसवी को अलग क्यों देखता हूं? मैं भी एक बहुत मजबूत कार्यान्वयन हो एक्सेल पाया।
user157195

@ user157195 पार्सर पर निर्भर करता है, आपको इसके प्रलेखन में पढ़ना चाहिए कि एक्सेल और गैर-एक्सेल इनपुट के बीच अंतर क्यों है। मैं नहीं देखूंगा कि एक क्यों होना चाहिए। मैं केवल आर से यह जानता हूं , जो हर दूसरे की तरह एक्सेल सीएसवी का इलाज करता है। हालाँकि यह XLS को भी पढ़ सकता है।
slhck

2
जैसा कि सभी आकार और आकारों में वर्षों से प्रोग्राम-एक्सेल-जेनरेट की गई CSV फ़ाइलों को पढ़ने वाला कोई व्यक्ति है, मैं यह सत्यापित कर सकता हूं कि slhck 100% सही है - Excel 100% "मानक" CSV फ़ाइलों का उत्पादन करता है। हर बार।
मार्क हेंडरसन

@Farseeker पुष्टि के लिए धन्यवाद! (और आपके पास 1337 अब प्रतिनिधि!)
slhck

5
सावधान! दशमलव बिंदु के रूप में ',' का उपयोग करने वाले देशों में एक्सेल "बहुत ही चतुर" होगा और 'का उपयोग करेगा;' विभाजक चरित्र। यह ज़ी जर्मनज़ को कई "उद्धरण"; "इन"; "उनके"; "फाइलों" को देखने से बचाता है। दुर्भाग्य से अगर वे इसे ब्रिटेन के कार्यालय में भेजते हैं तो इसे AllSmooshedUpIntoASingleCellOnEveryLine मिलेगा। प्रतिभाशाली।
ल्यूक उशरवुड

-1

मूल सीएसवी कार्यान्वयन से मेरी समझ यह थी कि सभी पाठ क्षेत्र उद्धरणों और संख्याओं में संलग्न थे, होने की आवश्यकता नहीं थी। Excel ऐसा नहीं करता है और यदि आप अपने Excel द्वारा बनाई गई csv फ़ाइलों को गैर-Microsoft प्लेटफार्मों पर अपलोड करने का प्रयास करते हैं तो वे विफल हो जाते हैं। यह एक मानक Microsoft दृष्टिकोण है, इंटरऑपरेबिलिटी को अनदेखा करें और नियमों का पालन करते हुए आँख बंद करके ध्यान केंद्रित करें। IE के साथ एक समान बात हुई, उन्होंने गद्दी और मार्जिन विशेषताओं के लिए HTML / css नियमों का सही ढंग से पालन किया और इस तथ्य को नजरअंदाज कर दिया कि हर मौजूदा वेब पेज और वेब ब्राउज़र ने उनके साथ अलग तरह से व्यवहार किया। परिणाम, लगभग हर वेब पेज पर अब IE के लिए विशेष नियम हैं। मुझे लगता है कि एक्सेल बेकार द्वारा निर्मित सीएसवी फाइलें हैं और मैन्युअल रूप से उन्हें ठीक से बनाने के लिए "कॉन्कैटनेट" फ़ंक्शन के एक कॉलम का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.