एक्सेल सीएसवी - संख्या सेल प्रारूप


86

मैं CSV फ़ाइल के रूप में रिपोर्ट तैयार करता हूं। जब मैं फ़ाइल को एक्सेल में खोलने की कोशिश करता हूं, तो यह सेल की सामग्री के आधार पर डेटा प्रकार के बारे में एक धारणा बनाता है, और उसके अनुसार सुधार करता है।

उदाहरण के लिए, यदि CSV फ़ाइल में है

...,005,...

फिर एक्सेल इसे 5 के रूप में दिखाता है। क्या यह ओवरराइड करने और 005 को प्रदर्शित करने का एक तरीका है?

मैं स्वयं फ़ाइल के लिए कुछ करना पसंद करूंगा, ताकि उपयोगकर्ता इसे खोलने के लिए CSV फ़ाइल पर केवल डबल-क्लिक कर सके।

मैं एक्सेल 2003 का उपयोग करता हूं।


इस समस्या के स्थूल समाधान के लिए यह प्रश्न देखें ।
एडम जेन्सेन

आजकल बहुत सारे एक्सेल-लेखन पुस्तकालय हैं। अपनी पसंद की भाषा में .xlsx फाइलें बनाना बहुत आसान होना चाहिए। यदि आपके उपयोगकर्ता अभी भी किसी कारण से Excel 2003 का उपयोग कर रहे हैं (आम तौर पर जब यह प्रश्न मूल रूप से पूछा गया था, लेकिन उम्मीद है कि आज बहुत संभावना नहीं है), तो कुछ .xls- उत्पादक विकल्प भी हैं। आज इस सवाल से जूझ रहे लोगों के लिए, यह बहुत संभावना है कि आपको अपना रोल नहीं करना पड़ेगा।
जॉन वाई

जवाबों:


129

.Csv फ़ाइल खोलते समय Excel लागू करने वाले फ़ॉर्मेट को नियंत्रित करने का एक आसान तरीका नहीं है। हालांकि नीचे सूचीबद्ध तीन दृष्टिकोण हैं जो मदद कर सकते हैं।

मेरी प्राथमिकता पहला विकल्प है।

विकल्प 1 - फ़ाइल में डेटा बदलें

आप डेटा को .csv फ़ाइल में निम्नानुसार बदल सकते हैं ..., = "005" , ... यह एक्सेल में प्रदर्शित किया जाएगा ..., 005 , ...

Excel ने डेटा को एक सूत्र के रूप में रखा होगा, लेकिन कॉलम की प्रतिलिपि बनाना और पेस्ट का उपयोग करके विशेष मानों को सूत्र से छुटकारा मिल जाएगा, लेकिन स्वरूपण को बनाए रखना होगा

विकल्प 2 - डेटा को प्रारूपित करें

यदि यह केवल एक प्रारूप मुद्दा है और उस कॉलम में आपके सभी डेटा की तीन अंकों की लंबाई है। फिर Excel में डेटा खोलें और फिर इस कस्टम प्रारूप 000 के साथ डेटा वाले कॉलम को प्रारूपित करें

विकल्प 3 - फ़ाइल एक्सटेंशन को .dif में बदलें (डेटा इंटरचेंज प्रारूप)

फ़ाइल एक्सटेंशन बदलें और स्वरूपों को नियंत्रित करने के लिए फ़ाइल आयात विज़ार्ड का उपयोग करें। .Dif एक्सटेंशन वाली फाइलें डबल क्लिक होने पर एक्सेल द्वारा अपने आप खुल जाती हैं।

क्रमशः:

  • फ़ाइल एक्सटेंशन .csv से .dif में बदलें
  • एक्सेल में इसे खोलने के लिए फ़ाइल पर डबल क्लिक करें।
  • 'फ़ाइल आयात विज़ार्ड' लॉन्च किया जाएगा।
  • 'फ़ाइल प्रकार' को 'सीमांकित' पर सेट करें और 'अगला' बटन पर क्लिक करें।
  • डेलीमीटर के तहत, 'कोमा' पर टिक करें और 'नेक्स्ट' बटन पर क्लिक करें।
  • अपने डेटा के प्रत्येक कॉलम पर क्लिक करें जो प्रदर्शित होता है और 'कॉलम डेटा फॉर्मेट' का चयन करें। '005' मान वाले स्तंभ को 'पाठ' के रूप में स्वरूपित किया जाना चाहिए।
  • फिनिश बटन पर क्लिक करें, फ़ाइल एक्सेल द्वारा आपके द्वारा निर्दिष्ट प्रारूपों के साथ खोली जाएगी।

8
.dif ने मेरी मशीन पर काम नहीं किया; Excel 2007 के साथ मैन्युअल रूप से खुलने से काम नहीं चला (मुझे चेतावनी दी गई कि फ़ाइल प्रकार एक्सटेंशन से भिन्न था) और ऐसा दिखता है। DIF बहुत सारे कंप्यूटरों पर क्विकटाइम से जुड़ा है। बस FYI करें :) नहीं तो बढ़िया टिप्स!
निकोलस

15
मुझे लगता है कि विकल्प 1 सबसे अच्छा है, यदि आप किसी फ़ाइल को उत्पन्न करने के लिए एक परेशानी-मुक्त तरीका चाहते हैं जो "बस काम करता है" - अर्थात यह उपयोगकर्ता के कंप्यूटर पर किसी भी अतिरिक्त काम करने की आवश्यकता के बिना एक्सेल में खुलता है।
किप

मुझे एक ही मुद्दा मिला है, और उपरोक्त में से कोई भी उपयुक्त खेद नहीं है। मुझे लगता है कि XML के रूप में निर्यात किया जा सकता है और CSV में जाने के लिए XSLT का उपयोग करें। मुझे CSV फ़ाइल को सही करने की आवश्यकता है ताकि इसे किसी अन्य अनुप्रयोग में आयात किया जा सके
मैट

1
कृपया ध्यान दें कि विकल्प 1 हमेशा अच्छा नहीं होता है, यदि आपके पास "1E02, जो भी पाठ है" कहने की एक सेल है और फिर आप एक समान सामने रखते हैं तो एक्सेल आपको एक सूत्र में प्रवेश करने की कल्पना करेगा। पहला सूत्र गलत होगा लेकिन दूसरा और सबसे महत्वपूर्ण बात यह है कि यह आपके पाठ को 2 कोशिकाओं से अलग करेगा।
ghiscoding

1
विकल्प के लिए धन्यवाद 1. किसी भी अतिरिक्त काम के बिना मेरी वैज्ञानिक संकेतन समस्या को ठीक किया।
ना

28

CSV का उपयोग न करें, SYLK का उपयोग करें।
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)

यह स्वरूपण पर अधिक नियंत्रण देता है, और Excel सामग्री की जांच करके क्षेत्र के प्रकार का अनुमान लगाने की कोशिश नहीं करेगा। यह थोड़ा जटिल दिखता है, लेकिन आप बहुत छोटे उपसमूह का उपयोग करके दूर हो सकते हैं।


2
+1 SYLK को लिखना सरल है, इसे लागू करने के लिए, मैंने इसे नौसिखिए के रूप में किया।
मैट एच।

1
मुझे इस प्रारूप के बारे में पता नहीं था। यह कुछ ऐसा दिखता है जिसका मैं उपयोग कर सकता था। इसके लिए +1!
बगगाबिल

+1 ने मुझे CSV से SYLK पर जाने के लिए पाँच मिनट का समय दिया। अब से मेरा गोटो आउटपुट स्वरूप!
TheFish

@xamde, आप सही कह रहे हैं। यह अजीब है कि उन्होंने इसका समर्थन करने के लिए प्रारूप कभी नहीं बढ़ाया, जैसा कि उन्होंने आरटीएफ के साथ किया था।
मार्क रैनसम

डब्ल्यूटीएफ, या कोई भी इसकी सिफारिश करेगा कि मैं विकिपीडिया से उद्धृत करता हूं: "Microsoft SYLK विनिर्देश प्रकाशित नहीं करता है।"
सोरिन

14

यह Microsoft Office 2010, एक्सेल संस्करण 14 के लिए काम करता है

मैंने ओपी की प्राथमिकता को गलत बताया "फ़ाइल में कुछ करने के लिए।" मैं अभी भी इसे उन लोगों के लिए रख रहा हूं जो सीधे आयात को प्रारूपित करना चाहते हैं

  1. एक रिक्त (नई) फ़ाइल खोलें (फ़ाइल -> वर्कबुक से नई)
  2. आयात विज़ार्ड खोलें (डेटा -> पाठ से)
  3. अपनी .csv फ़ाइल और आयात का चयन करें
  4. संवाद बॉक्स में, 'डिलीट किया हुआ' चुनें, और अगला क्लिक करें।
  5. अपना सीमांकक चुनें (सब कुछ अनचेक करें लेकिन 'अल्पविराम'), अपना पाठ क्वालिफ़ायर चुनें (संभवतः {कोई नहीं}), अगला क्लिक करें
  6. में डाटा पूर्वावलोकन क्षेत्र स्तंभ आप पाठ होना चाहते हैं का चयन करें। इसे उजागर करना चाहिए।
  7. में स्तंभ डेटा स्वरूप क्षेत्र, 'पाठ' का चयन करें।
  8. समाप्त पर क्लिक करें।

छवियों के साथ समझाया: support.insight.ly/hc/en-us/articles/…
यो लुडके

2

आप बस टेक्स्ट के रूप में अपनी सीमा को प्रारूपित कर सकते हैं।

यहां भी संख्या स्वरूपों पर एक अच्छा लेख है और आप उन्हें कैसे प्रोग्राम कर सकते हैं।


यह केवल प्रभावित करेगा कि मूल्य कैसे प्रदर्शित किया जाता है। आपको इसे पाठ में बदलने की आवश्यकता है, या तो सूत्र के साथ, या आयात के दौरान, इस धागे में कई विधियों में से एक के साथ
leo

2

वास्तव में मुझे पता चला कि, कम से कम Office 2003 से शुरू करके, आप एक्सेल स्प्रेडशीट को XML फ़ाइल के रूप में सहेज सकते हैं। इस प्रकार, मैं एक XML फ़ाइल का उत्पादन कर सकता हूं और जब मैं इस पर डबल-क्लिक करता हूं, तो इसे एक्सेल में खोला जाएगा। यह SYLK के समान नियंत्रण स्तर प्रदान करता है, लेकिन XML सिंटैक्स अधिक सहज है।


2

सेल में गैर-ब्रेकिंग स्पेस जोड़ने से मदद मिल सकती है। उदाहरण के लिए: "firstvalue";"secondvalue";"005 ";"othervalue"

यह एक्सेल को एक पाठ के रूप में व्यवहार करने के लिए मजबूर करता है और अंतरिक्ष दिखाई नहीं देता है। विंडोज पर आप alt + 0160 टिप करके एक नॉन-ब्रेकिंग स्पेस जोड़ सकते हैं। अधिक जानकारी के लिए यहां देखें: http://en.wikipedia.org/wiki/Non-breaking_space

Excel 2010 पर कोशिश की गई। आशा है कि यह उन लोगों की मदद कर सकता है जो अभी भी इस समस्या के लिए एक उचित समाधान खोज रहे हैं।


2

CS # डेटा को C # कोड से निर्यात करते समय मेरे पास यह समस्या थी, और टैब वर्ण \ t के साथ अग्रणी शून्य डेटा को प्रीपे करके इसे हल किया गया था, इसलिए डेटा को एक्सेल में संख्यात्मक के बजाय पाठ के रूप में व्याख्या किया गया था (फिर भी अन्य वर्णों को पूर्वनिर्मित करने के विपरीत, यह) टी देखा)।

मुझे = "001" दृष्टिकोण पसंद आया, लेकिन इससे CSV डेटा को मेरे C # अनुप्रयोग में फिर से आयात नहीं किया जा सकेगा, आयात CSV फ़ाइल से इस सभी स्वरूपण को हटाए बिना (इसके बजाय मैं केवल आयात डेटा ट्रिम करूँगा) ।


1

मेरा मानना ​​है कि जब आप फ़ाइल आयात करते हैं तो आप कॉलम प्रकार का चयन कर सकते हैं। संख्या के बजाय इसे टेक्स्ट बनाएं। हालाँकि मेरे पास इस समय कोई कॉपी नहीं है, हालाँकि मैं जाँच कर सकता हूँ।


1

Csv को ओएलडीबी में लोड करें और सभी अनुमानित डेटाटिप्स को स्ट्रिंग करने के लिए मजबूर करें

मैं एक ही सवाल पूछा और फिर कोड के साथ जवाब दिया।

मूल रूप से जब csv फ़ाइल लोड होती है तो ओलेडब ड्राइवर मान्यताओं को बनाता है, आप इसे बता सकते हैं कि क्या धारणाएँ बनाना है।

मेरा कोड सभी डेटाटाइप्स को स्ट्रिंग करने के लिए मजबूर करता है ... हालांकि स्कीमा को बदलना बहुत आसान है। अपने उद्देश्यों के लिए मैंने जिस तरह से मैं चाहता था, वैसे पाने के लिए एक xslt का उपयोग किया - लेकिन मैं कई तरह की फ़ाइलों को पार्स कर रहा हूं।


1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मेरे पास एक समाधान है जो यहां सूचीबद्ध नहीं है।

जब आप csv का उत्पादन करते हैं तो अल्पविराम के बाद एक स्थान जोड़ते हैं लेकिन अपने मान से पहले जैसे , 005,

इसने वैसे भी 2007 में ऑटो डेट फ़ॉर्मेटिंग को रोकने के लिए काम किया।


2
बस परीक्षण किया गया, एक्सेल 2007 और एक नंबर कॉलम के साथ काम नहीं कर रहा है। : - /
नॉर्मन एच

1

पाठ आयात विज़ार्ड विधि तब काम नहीं करती है जब CSV फ़ाइल आयात की जा रही है एक सेल के भीतर लाइन ब्रेक। यह विधि इस परिदृश्य को संभालती है (कम से कम टैब सीमांकित डेटा के साथ):

  1. नई एक्सेल फाइल बनाएं
  2. सभी कोशिकाओं का चयन करने के लिए Ctrl + A
  3. संख्या स्वरूप कॉम्बोक्स में, पाठ का चयन करें
  4. पाठ संपादक में टैब सीमांकित फ़ाइल खोलें
  5. सभी का चयन करें, कॉपी करें और एक्सेल में पेस्ट करें

1

बस सीएसवी डॉक में संख्या से पहले 'जोड़ें।


यह Excel 2010 में काम नहीं किया ('सेल सामग्री का हिस्सा बन जाता है)।
sancho.s ReinstateMonicaCellio

1

यह मुझे पूरे दिन पागल कर रहा है (क्योंकि वास्तव में आप CSV फ़ाइल खोलने से पहले एक्सेल कॉलम प्रकारों को नियंत्रित नहीं कर सकते हैं), और इसने मेरे लिए काम किया, VB.NET और एक्सेल इंटरॉप का उपयोग करके:

        'Convert .csv file to .txt file.
        FileName = ConvertToText(FileName)

        Dim ColumnTypes(,) As Integer = New Integer(,) {{1, xlTextFormat}, _
                                                        {2, xlTextFormat}, _
                                                        {3, xlGeneralFormat}, _
                                                        {4, xlGeneralFormat}, _
                                                        {5, xlGeneralFormat}, _
                                                        {6, xlGeneralFormat}}

        'We are using OpenText() in order to specify the column types.
        mxlApp.Workbooks.OpenText(FileName, , , Excel.XlTextParsingType.xlDelimited, , , True, , True, , , , ColumnTypes)
        mxlWorkBook = mxlApp.ActiveWorkbook
        mxlWorkSheet = CType(mxlApp.ActiveSheet, Excel.Worksheet)


Private Function ConvertToText(ByVal FileName As String) As String
    'Convert the .csv file to a .txt file.
    'If the file is a text file, we can specify the column types.
    'Otherwise, the Codes are first converted to numbers, which loses trailing zeros.

    Try
        Dim MyReader As New StreamReader(FileName)
        Dim NewFileName As String = FileName.Replace(".CSV", ".TXT")
        Dim MyWriter As New StreamWriter(NewFileName, False)
        Dim strLine As String

        Do While Not MyReader.EndOfStream
            strLine = MyReader.ReadLine
            MyWriter.WriteLine(strLine)
        Loop

        MyReader.Close()
        MyReader.Dispose()
        MyWriter.Close()
        MyWriter.Dispose()

        Return NewFileName
    Catch ex As Exception
        MsgBox(ex.Message)
        Return ""
    End Try

End Function

0

CSV खोलते समय, आपको पाठ आयात विज़ार्ड मिलता है। विज़ार्ड के अंतिम चरण में, आपको विशिष्ट कॉलम को पाठ के रूप में आयात करने में सक्षम होना चाहिए, जिससे '00' उपसर्ग को बरकरार रखा जा सके। उसके बाद आप फिर सेल को किसी भी तरह से प्रारूपित कर सकते हैं जो आप चाहते हैं।

मैंने एक्सेल 2007 के साथ कोशिश की और यह काम करता दिखाई दिया।


1
Excel 2003 विज़ार्ड को पॉप नहीं करता है।
सर्गेई स्टैडनिक

0

खैर, एक्सेल सीएसवी फ़ाइलों के लिए विज़ार्ड को कभी भी पॉप अप नहीं करता है। यदि आप इसका नाम .txt में रखते हैं, तो अगली बार जब आप Excel में फ़ाइल> ओपन करेंगे तो आपको विज़ार्ड दिखाई देगा।


0

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

...,`005,...

EDIT: यह गलत है। Apostrophe ट्रिक केवल Excel में सीधे डेटा दर्ज करते समय काम करती है। जब आप इसे CSV फ़ाइल में उपयोग करते हैं, तो एपोस्ट्रोफ़ फ़ील्ड में दिखाई देता है, जिसे आप नहीं चाहते हैं।

http://support.microsoft.com/kb/214233


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