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


95

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

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

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

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

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


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

जवाबों:


81

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

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


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

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

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

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

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

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


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

@Szabolcs Excel CSV फ़ाइल (फ़ाइल का उपयोग करके-> खुला या एक्सप्लोरर का उपयोग करते हुए) सीमांकक का पता लगाने की कोशिश नहीं करेगा , यह सिर्फ सिस्टम सेटिंग का उपयोग करेगा। हालांकि यह आयात सुविधा का उपयोग करते समय स्वचालित रूप से सीमांकक (टैब, अल्पविराम, अर्धविराम या स्थान) का पता लगाने का प्रबंधन करेगा ।
ज़ैकिनस्टर

1
आपका जवाब OS X पर भी मान्य था: यह अभी भी दशमलव बिंदु / अल्पविराम है जो "परेशानी" का कारण बनता है (जैसा कि आप उत्तर में उल्लेख करते हैं)।
शाबोलक्स

1
बाद में संपादित करें: माफी! यह काम करता है! जाहिरा तौर पर एक कार्यक्रम को फिर से शुरू करने और / या लॉग-आउट / -इन फिर से परिवर्तन लागू करने की जरूरत है। मुझे नहीं पता कि कब, लेकिन मेरे बदलाव के बाद थोड़ी देर बाद अचानक यह काम किया।
mmo

1
मैक ओएस एक्स पर, परिवर्तन करने के बाद एक्सेल को क्वेट करना न भूलें। एक्सेल खुला रहता है यदि आप केवल सभी खुली शीट्स को बंद करते हैं। एक्सेल पर क्लिक करें> एक्सेल से बाहर निकलें या केवल कमांड + क्यू दबाएं और आपका काम हो गया।
पाउलो पेड्रोसो

94

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

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

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


1
सुनिश्चित करें कि -ऑनली- इस का उपयोग करें -देखें- फाइल पर, और इसे संशोधित न करें, अन्यथा आप निम्नलिखित मुद्दों में से एक में भाग सकते हैं: theonemanitdepbox.wordpress.com/2014/12/15/…
Wouter

इससे भी बेहतर अगर आपको इस फ़ाइल को दूसरों को फिर से वितरित करने की आवश्यकता है, तो आप सुनिश्चित करें कि एक्सेल फ़ाइल को समझने में सक्षम हो जाएगा, भले ही उनके कॉन्फ़िगरेशन क्या हों। मैं हमेशा इन फ़ाइलों को साझा करने और सहयोग करने के लिए किसी भी संस्करण नियंत्रण प्रणाली का उपयोग करने में सक्षम होने के लिए csv का उपयोग करता हूं, लेकिन अल्पविराम बनाम अर्धविरामों के साथ संघर्ष किया है, और हमेशा अपने कॉन्फिग को बदलने के लिए सभी को botthered किया है, अब और नहीं। आपका बहुत बहुत धन्यवाद!
राफारेनो सेप

1
अकेले क्या शीर्ष पर?
नैटस

11

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

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


4

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

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


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

1

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

या

LibreOffice स्थापित करें और LibreOffice Calc के साथ CSV फ़ाइल खोलें।


1

मेरे पास .csvविभाजक ;और क्षेत्रीय सेटिंग्स के साथ एक फ़ाइल थी जो सूची विभाजक पर सेट थी ;। हालाँकि एक्सेल ने अभी भी कॉलम को पार्स नहीं किया है।

यहाँ छवि विवरण दर्ज करें

यह एक एन्कोडिंग मुद्दा निकला। फ़ाइलों को SQL सर्वर प्रबंधन स्टूडियो 2005 से निर्यात किया गया और इनकोडिंग हो गई UCS-2 LE BOM। नोटपैड ++ का उपयोग करके मैंने एन्कोडिंग को स्विच किया UTF-8और सब कुछ काम करना शुरू कर दिया।


0

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

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


0

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

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

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

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

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

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

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

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

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

sep=,

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


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

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