सवाल सीएसवी फाइलों में डिफ़ॉल्ट डिलीमीटर के रूप में अल्पविराम को अल्पविराम की व्याख्या कैसे करें?


मेरे पास कई .csv फ़ाइलें हैं I उनमें से कुछ अल्पविराम सीमित हैं, कुछ टैब सीमित हैं (शायद उन्हें .tsv कहा जाना चाहिए ...)

csv एक्सेल स्थापित होने पर एक्सटेंशन एक्सेल से जुड़ा होता है। हालांकि, अगर मैं इन फ़ाइलों में से एक को एक्सेल के साथ खोलता हूं, तो सबकुछ एक ही कॉलम में फंस जाता है और कॉमा को डिलीमीटर के रूप में नहीं समझा जाता है।

मैं फ़ाइल -> आयात ... के बजाय, फ़ाइल का चयन कर सकता हूं, और सामग्री (डेलीमीटर, डेटा प्रकार इत्यादि) की व्याख्या करने के लिए सटीक तरीका चुन सकता हूं लेकिन अधिकांश समय मैं बस चाहता हूं देखना एक स्पष्ट तालिका दृश्य के माध्यम से फ़ाइल पर। मैं इसे एक्सेल के साथ संसाधित नहीं करना चाहता हूं।

एक्सेल को डिलीमीटर की स्वतः व्याख्या करने का कोई तरीका है और सीएसवी फ़ाइल को खुले जाने के तुरंत बाद उचित टेबल के रूप में दिखाएं? मुझे इसकी आवश्यकता है इसलिए मैं Excel को ऐसी फ़ाइलों के लिए त्वरित दर्शक के रूप में उपयोग कर सकता हूं।

मुझे संदेह है कि एक रास्ता होना चाहिए, अन्यथा एक्सेल स्वयं को CSV फ़ाइलों से संबद्ध नहीं करेगा।


78
2018-06-11 11:04


मूल


मैं वास्तव में समझता हूं कि चुनी गई प्रतिक्रिया आपके प्रश्न का उत्तर देती है, लेकिन दूसरे को हाइलाइट किया जाना चाहिए क्योंकि यह वैश्विक समाधान प्रदान करता है, जो ईमेल, नेटवर्क इत्यादि द्वारा साझा एक्रोस का काम करता है। - Rafareino


जवाब:


सीएसवी फाइलों को खोलते समय, एक्सेल एक सिस्टम क्षेत्रीय सेटिंग का उपयोग करेगा List separator यह निर्धारित करने के लिए कि कौन सा डिफ़ॉल्ट डिलीमीटर उपयोग करना है।

माइक्रोसॉफ्ट एक्सेल .csv फ़ाइलों को खोल देगा, लेकिन सिस्टम के आधार पर   क्षेत्रीय सेटिंग्स, यह एक अर्धविराम की बजाय एक विभाजक के रूप में उम्मीद कर सकते हैं   एक अल्पविराम, क्योंकि कुछ भाषाओं में अल्पविराम दशमलव के रूप में प्रयोग किया जाता है   विभाजक। (से विकिपीडिया)


पर विंडोज, आप बदल सकते हैं List separator में सेटिंग Regional and Language Options जैसा कि निर्दिष्ट है कार्यालय समर्थन वेबसाइट :

एक सीएसवी पाठ फ़ाइल में विभाजक बदलें

  1. विंडोज स्टार्ट मेनू पर क्लिक करें।
  2. नियंत्रण कक्ष पर क्लिक करें।
  3. क्षेत्रीय और भाषा विकल्प संवाद बॉक्स खोलें।
  4. क्षेत्रीय विकल्प टैब पर क्लिक करें।
  5. कस्टमाइज़ / अतिरिक्त सेटिंग्स (विन 10) पर क्लिक करें।
  6. सूची विभाजक बॉक्स में एक नया विभाजक टाइप करें।
  7. दो बार ठीक क्लिक करें।

ध्यान दें: यह केवल तभी काम करता है जब दशमलव प्रतीक को अल्पविराम (उपरोक्त विकिपीडिया उद्धरण के साथ) के रूप में भी नामित नहीं किया जाता है। यदि यह है, तो एक्सेल होगा नहीं सूची विभाजक के रूप में अल्पविराम का उपयोग करें, भले ही चुने गए हों। कई गैर-संयुक्त राज्य क्षेत्रों के लिए, अल्पविराम डिफ़ॉल्ट दशमलव प्रतीक है।

पर मैक ओएस एक्स, यह सेटिंग से लिया जा रहा प्रतीत होता है दशमलव विभाजक सेटिंग (में भाषा और क्षेत्र का फलक सिस्टम प्रेफरेंसेज, के लिए जाओ उन्नत)। अगर दशमलव विभाजक एक बिंदु है तो डिफ़ॉल्ट सीएसवी विभाजक एक अल्पविराम होगा, लेकिन अगर दशमलव विभाजक एक अल्पविराम है, तो डिफ़ॉल्ट सीएसवी विभाजक अर्धविराम होगा।

जैसा कि आपने स्वयं टिप्पणी में कहा था, मैक उपयोगकर्ताओं के लिए उन सीएसवी फ़ाइलों को तुरंत देखने के लिए एक विकल्प है। यह प्लगइन के लिए है त्वरित देखो बुलाया quicklook-सीएसवी जो विभाजक पहचान का संचालन करता है।


73
2018-06-11 11:07



धन्यवाद, यह समझ में आता है। मुझे लगता है कि यह डिफ़ॉल्ट रूप से डिलीमीटर के रूप में टैब की व्याख्या नहीं करेगा (जो समझ में आता है क्योंकि सीएसवी कॉमा सेपरेटेड वैल्यू के लिए खड़ा है, लेकिन लोग अभ्यास में सीएसवी में टैब का उपयोग करते हैं और मुझे इससे निपटने की ज़रूरत है)। - Szabolcs
@Szabolcs एक्सेल एक CSV फ़ाइल खोलने के दौरान delimiter का पता लगाने की कोशिश नहीं करेगा (का उपयोग कर फ़ाइल> खुला या एक्सप्लोरर), यह सिर्फ सिस्टम सेटिंग का उपयोग करेगा। हालांकि यह उपयोग करते समय स्वचालित रूप से डिलीमीटर (टैब, कॉमा, अर्धविराम या अंतरिक्ष) का पता लगाने का प्रबंधन करेगा आयात सुविधा। - zakinster
आपका उत्तर ओएस एक्स पर भी मान्य था: यह अभी भी दशमलव बिंदु / अल्पविराम है जो "परेशानी" का कारण बनता है (जैसा कि आप उत्तर में उल्लेख करते हैं)। - Szabolcs
बाद में संपादित करें: क्षमा करें! यह काम करता है! स्पष्ट रूप से परिवर्तन को लागू करने के लिए प्रोग्राम को फिर से शुरू करने और / या लॉग-आउट / -इन को फिर से शुरू करने की आवश्यकता है। मुझे बिल्कुल पता नहीं है, लेकिन मेरे बदलाव के बाद थोड़ी देर बाद यह अचानक काम करता था। - mmo
मैक ओएस एक्स पर, परिवर्तन करने के बाद Excel को QUIT करना न भूलें। यदि आप केवल सभी खुली चादरें बंद करते हैं तो एक्सेल खुला रहता है। एक्सेल पर क्लिक करें> एक्सेल छोड़ें या बस कमांड + क्यू दबाएं और आप कर चुके हैं। - Paulo Pedroso


यदि आप फ़ाइल के प्रारूप को संशोधित नहीं करना चाहते हैं, और केवल Excel को लक्षित कर रहे हैं, तो आप निम्न मदद करने के लिए निम्न Excel चाल का उपयोग कर सकते हैं।

पाठ के साथ फ़ाइल के शीर्ष पर एक नई लाइन जोड़ें "sep=," (उद्धरण सहित) एक्सेल के लिए सूची विभाजक के रूप में फ़ाइल को "," के साथ खोलने के लिए।

यह आपके विंडोज क्षेत्रीय सेटिंग्स को बदलने से बचने और लगातार परिणाम प्राप्त करने के लिए एक बहुत ही आसान चाल है। लेकिन यह एक्सेल विशिष्ट है।


76
2017-12-10 14:38



सुनिश्चित करें कि फ़ाइल पर इसे देखने के लिए, और इसे संशोधित न करें, अन्यथा आप निम्न में से किसी एक समस्या में भाग ले सकते हैं: theonemanitdepartment.wordpress.com/2014/12/15/... - Wouter
इससे भी बेहतर यदि आपको इस फ़ाइल को दूसरों को फिर से वितरित करने की आवश्यकता है, तो आप सुनिश्चित करते हैं कि एक्सेल फ़ाइल को समझने में सक्षम होगा, इससे कोई फर्क नहीं पड़ता कि उनकी कॉन्फ़िगरेशन क्या हैं। मैं हमेशा इन फ़ाइलों पर साझा करने और सहयोग करने के लिए किसी भी संस्करण नियंत्रण प्रणाली का उपयोग करने में सक्षम होने के लिए सीएसवी का उपयोग करता हूं, लेकिन अल्पविराम बनाम सेमीकॉलन के साथ संघर्ष कर रहा हूं, और हमेशा अपनी कॉन्फ़िगरेशन बदलने के लिए हर किसी को बोझ करता हूं, और नहीं। आपका बहुत बहुत धन्यवाद! - Rafareino
अकेले क्या शीर्ष पर? - NateS


आपको चारों ओर उद्धरण की आवश्यकता नहीं है sep=, - जब तक यह फ़ाइल की पहली पंक्ति है, यह कम से कम Excel 2016 के साथ काम करेगी।

मैंने पाया कि अगर फ़ाइल टैब सीमित है, sep=\t उद्धरण के साथ और बिना ठीक काम करता है।


9
2018-06-02 12:27





जब क्षेत्रीय सेटिंग्स में विभाजक एक अल्पविराम नहीं है लेकिन अर्धविराम (डच विभाजक) है, तो CSV फ़ाइल को TXT फ़ाइल में पुनर्नामित करें। TXT फ़ाइल पर राइट-क्लिक करें और "इसके साथ खोलें" चुनें और "एक्सेल" चुनें। Excel में पहले कॉलम का चयन करें, रिबन में डेटा का चयन करें और कॉलम को अलग टेक्स्ट चुनें।

या

लिबर ऑफिस स्थापित करें और सीएसवी फ़ाइल को लिबर ऑफिस कैल्क के साथ खोलें।


1
2018-06-25 14:46





स्वीकृत उत्तर सही है लेकिन मैं एक दृश्य व्यक्ति हूं। विंडोज 10 में इसे कैसे करें, स्क्रीनशॉट प्रारूप में प्रत्येक चरण यहां दिया गया है।

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here


1
2017-07-21 11:55



बहुत उपयोगी! बस याद रखें (जैसा कि पहले से कहीं ऊपर उल्लेख किया गया है) List separator यदि उसी प्रतीक का उपयोग किया जाता है तो उसे अनदेखा कर दिया जाएगा Decimal symbol। आपको अक्सर मिल जाएगा , दशमलव प्रतीक के रूप में, इसलिए इसे किसी अन्य चीज़ में बदलना सुनिश्चित करें (उदा। .) सेटिंग करते समय List separator सेवा मेरे ,। - Dirk


एक सरल संपादक में सीएसवी फ़ाइल का निरीक्षण करना सुनिश्चित करें जैसे नोटपैड यह सत्यापित करने के लिए कि यह सही रूप से स्वरूपित है।

मैंने एक बेवकूफ बग हल करने के बाद इस जवाब को जोड़ा, जिसमें मैंने वीबी के साथ बनाई गई सीएसवी फाइलों को एक्सेल में अलग-अलग कॉलम के साथ खोला नहीं था। मैंने पाया कि जिस तरह से मैंने लाइनों को लिखा था, प्रत्येक पंक्ति को उद्धरण चिह्नों के साथ लपेटा गया था। एक्सेल ने उद्धरण चिह्न छुपाए और कॉलम ए में पूरी लाइन दिखायी, जिससे ऐसा लगता है कि यह मेरे अल्पविराम विभाजकों को अनदेखा करता है।


0
2018-06-12 17:22





सीएसवी एक्सटेंशन के साथ एक टेक्स्ट फ़ाइल में इसे सहेजने का सबसे अच्छा तरीका होगा

Sub ExportToCSV()
    Dim i, j As Integer
    Dim Name  As String

    Dim pathfile As String


    Dim fs As Object
        Dim stream As Object

        Set fs = CreateObject("Scripting.FileSystemObject")
    On Error GoTo fileexists

    i = 15
    Name = Format(Now(), "ddmmyyHHmmss")
    pathfile = "D:\1\" & Name & ".csv"

    Set stream = fs.CreateTextFile(pathfile, False, True)

fileexists:

    If Err.Number = 58 Then
        MsgBox "File already Exists"
        'Your code here
        Return
    End If
    On Error GoTo 0

    j = 1
    Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)

        stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))

        j = j + 1
        i = i + 1
    Loop

stream.Close

End Sub

0
2017-07-31 06:30





डच के लिए मुझे एक समस्या थी कि विंडोज 7 पर एक्सेल 2008 आरएफसी 4180 का पालन नहीं करता था:

"लाइन ब्रेक (सीआरएलएफ), डबल कोट्स और कॉमा युक्त फ़ील्ड डबल-कोट्स में संलग्न किए जाने चाहिए।"

अल्पविराम से अलग फ़ाइल में डबल कोट्स में संलग्न अल्पविराम (डच दशमलव विभाजक) के साथ फ़ील्ड सही ढंग से होते थे। डच लोकेल में दशमलव विभाजक है , और सूची विभाजक है ; तो एक्सेल के साथ एक फाइल नहीं पढ़ सका , दोनों के लिए उपयोग किया जाता है (सूची विभाजक को स्पष्ट रूप से बदलने के बाद भी नहीं , नियंत्रण कक्ष में)।

इनपुट इस तरह दिखता है:

"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21

समाधान @ user280725 द्वारा दिया गया था:

पहली पंक्ति के रूप में डालने के लिए नोटपैड का उपयोग करें:

sep=,

(इसका मतलब है कि उसके समाधान में उपयोगकर्ता @zakinster की नोट अब लागू करने की आवश्यकता नहीं है।)


दिलचस्प: सीएसवी फ़ाइल अभी भी लोड हो गई है, अगर आप अब लोकल को नियंत्रण कक्ष में यूएस अंग्रेज़ी में सेट करते हैं और फ़ाइल को सहेजते हैं, तो इसे यूएस अंग्रेज़ी प्रारूप में परिवर्तित कर दिया जाएगा (सूची विभाजक के रूप में अल्पविराम और दशमलव विभाजक के रूप में डॉट)।


0
2018-01-22 13:50