2011-04-21 34 views
16

संभव डुप्लिकेट सीएसवी स्तंभों में अल्पविराम का उपयोग करें:
Dealing with commas in a CSV fileकैसे

हम अपने परियोजनाओं में से एक के लिए एक csv फ़ाइल में एक थोक डेटा निर्यात कर रहे हैं। तो इस मामले में हमें ए, बी, सी, डी जैसे मूल्यों को निर्यात करना होगा, जिन्हें सभी को एक कॉलम में रहना होगा। लेकिन अल्पविराम उन्हें अलग-अलग स्तंभों में अलग करेगा।

जैसे कि हम टेक्स्टरेरा या संपादक में दर्ज कुछ मान निर्यात करते हैं, जैसे कि \ r \ n जैसे चरित्र को सीएसवी में अलग पंक्तियों के रूप में निर्यात किया जाएगा। इस समस्या का समाधान किस प्रकार से किया जा सकता है??

+4

http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file –

उत्तर

5

इस क्षेत्र को संभालने का सबसे आम तरीका है "" around फ़ील्ड का उपयोग करना, लेकिन आपकी फाइलों का उपभोग करने वाले लोगों के आधार पर इसे कई तरीकों से संभाला जा सकता है। आप अल्पविरामों परिसीमित कर सकते हैं, आप एक विशेष मूल्य के लिए अल्पविराम बदलने के लिए या एक अलग सीमांकक का उपयोग कर सकते हैं, लेकिन सबसे

49
 // CSV rules: http://en.wikipedia.org/wiki/Comma-separated_values#Basic_rules 
     // From the rules: 
     // 1. if the data has quote, escape the quote in the data 
     // 2. if the data contains the delimiter (in our case ','), double-quote it 
     // 3. if the data contains the new-line, double-quote it. 

     if (data.Contains("\"")) 
     { 
      data = data.Replace("\"", "\"\""); 
     } 

     if (data.Contains(",")) 
     { 
      data = String.Format("\"{0}\"", data); 
     } 

     if (data.Contains(System.Environment.NewLine)) 
     { 
      data = String.Format("\"{0}\"", data); 
     } 

डेटा कमान एक प्रकार का डाटाबेस या एक संपत्ति के मूल्य से व्यक्तिगत आइटम हो सकता है।

+0

बहुत उपयोगी, यह मेरी समस्या हल हो गया लेकिन एक्सेल में खोलने से यह पता चलता है कि यह विभिन्न प्रारूप –

+2

में है मुझे लगता है कि यह आइटम होना चाहिए: 'अगर (डेटा। शामिल है ("\" ")) {data = String.Format (" \ "{0} \" ", डेटा। बदलें (" \ "", "\" \ "")); } 'के रूप में एक बच निकला उद्धरण एक स्ट्रिंग में होना चाहिए जो उद्धरण के भीतर ही है। – DelftRed

+0

एक्सेल 2013 के साथ, नोटपैड ++ के साथ खुली फ़ाइल की आवश्यकता है, पहली पंक्ति में ** sep =, ** जोड़ें। –