दिलचस्प पोस्ट
क्या यह एक शीर्षक शैली के लिए संभव है? (और सीएसएस या जेएस के साथ?) कैसे जावास्क्रिप्ट के साथ एक <textarea> की सामग्री को बदलने के लिए ".configure" विकल्प "-बिल्ड", "–होस्ट" और "-क्षेत्र" के अंतर क्या है? जीआईटी: एक विशिष्ट फ़ोल्डर में चेकआउट Regex में "निश्चय हीरो की पुष्टि के लिए निश्चित समय निश्चित होना चाहिए" का तकनीकी कारण क्या है? PHP में नियमित अभिव्यक्ति शब्द सीमाएं कैसे काम करती हैं? TableView से DetailView स्विफ्ट तक डेटा भेजें Multithreading- अवगत मोड में बूस्ट पुस्तकालयों डेटाबेस डिजाइन पर कैनोनिकल पाठ? एक्सएसएल सीएसवी कनवर्टर जेकाइल ब्लॉग में टैग का समर्थन करने का एक आसान तरीका फ़ंक्शन में डिफ़ॉल्ट आर्गमेंट का उपयोग करना PHP में अधिकतम POST चर को कैसे बढ़ाएं? कैसे 'कट' कमांड को कई अनुक्रमिक सीमांकक को एक के रूप में व्यवहार करने के लिए? सबमिट करने के बाद HTML प्रपत्र पुनर्निर्देशन

नेट में एक सीएसवी फ़ाइल लेखन

एक डाटासेट को CSV फ़ाइल के रूप में निर्यात करने के लिए मेरे पास एक आवश्यकता है

मैंने कुछ समय के लिए नियमों का एक सेट खोज लिया है और यह महसूस किया कि CSV फ़ाइल लिखते समय कुछ नियम और अपवाद हैं।

http://knab.ws/blog/index.php?/archives/3-CSV-file-parser-and-writer-in-C-Part-1.html http://bytes.com/topic/c- तेज / उत्तर / 236875-समस्याएं-स्ट्रीमराइट आउटपुट-सीएसवी http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/0073fcbb-adab-40f0-b768-4bba803d3ccd

तो अब यह अल्पविरामों के साथ स्ट्रिंग्स को अलग करने की एक सरल प्रक्रिया नहीं है, मैंने एक मौजूदा सीएसवी लेखक या तीसरे पक्ष की खोज की है या (उम्मीद है!) नेट फ्रेमवर्क में शामिल है।

संपादित करें: नया लिंक: http://www.thinqlinq.com/Post.aspx/Title/LINQ-to-CSV-using-DynamicObject-and-TextFieldParser

TextFieldParser एक VB ऑब्जेक्ट है (सी # से संदर्भित किया जा सकता है) जो स्वचालित रूप से CSV फ़ाइलों को पार्स करेगा 🙂

मैं सोच रहा था कि किसी को भी किसी भी आसान .NET (2.0 -> 3.5 और 4.0) पुस्तकालयों को ठीक से स्वरूपित CSV फ़ाइल उत्पन्न करने के लिए उपयोग किया जा सकता है।

इसके अलावा, अगर सीएसवी फाइलों को बनाने के लिए नियमों का कोई भी सेट है

सीएसवी पाठकों और पार्सिंग सीएसवी फाइलों के बहुत सारे विवरण हैं, हालांकि लेखन के बारे में ज्यादा नहीं हैं (ठीक है, मुझे पता है कि यह सिर्फ विपरीत है: पी)।

http://www.codeproject.com/KB/database/CsvReader.aspx

कोई भी सहायताकाफी प्रशंसनीय होगी 🙂

मुझे कुछ और विस्तृत सीएसवी नियमों के साथ एक और लेख मिला: http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm

एक साफ 3 पार्टी लाइब्रेरी Linq-to-CSV है (फ्रेमवर्क लाइब्रेरी नहीं): http://www.codeproject.com/KB/linq/LINQtoCSV.aspx

हर किसी को आपकी सहायताके लिए शुक्रिया। मैंने फैसला किया है कि सबसे अच्छा समाधान एक साधारण स्थैतिक वर्ग बनाने के लिए होगा जो कि विशेष वर्ण प्रतिस्थापन करेगा (जो क्रिस ने उल्लेख किया है)

यदि मुझे अपनी सीएसवी फाइलों के लिए लिंक के लिए लिंक की ज़रूरत थी, तो मैं Linq-to-CSV के CodeProjects कार्यान्वयन को देखूंगा।

एक बार फिर धन्यवाद 🙂

Solutions Collecting From Web of "नेट में एक सीएसवी फ़ाइल लेखन"

यदि आपके सेल में कोई कॉमा है, तो डबल कोट्स के साथ पूरे सेल को चारों ओर से घेर लें, जैसे:

cell 1,cell 2,"This is one cell, even with a comma",cell4,etc 

और अगर आप एक शाब्दिक डबल उद्धरण चाहते हैं, तो उनमें से दो करें, जैसे:

 cell 1,cell 2,"This is my cell and it has ""quotes"" in it",cell 4,etc 

तिथियों के लिए, आईएसओ प्रारूप में रहें, और आपको ठीक होना चाहिए (जैसे yyyy-mm-dd hh: mm: ss)

सीएसवीहैल्पर (एक लाइब्रेरी जो मैं रखता हूं) भी NuGet के माध्यम से उपलब्ध है।

CsvHelper स्वचालित रूप से अपने वर्ग ऑब्जेक्ट को आपके लिए फ़ाइल में लिख सकता है।

 var myObj = new MyCustomClass { Prop1 = "one", Prop2 = 2 }; var streamWriter = // Create a writer to somewhere... var csvWriter = new CsvWriter( streamWriter ); // You can write a single record. csvWriter.WriteRecord( myObj ); // You can also write a collection of records. var myRecords = new List<MyCustomClass>{ myObj }; csvWriter.WriteRecords( myRecords ); 

मैं बस एक आरएफसी को जोड़ना चाहूंगा जो कि सीएसवी प्रारूप को निर्दिष्ट करता है जो कि मैं कैनोनिकल स्रोत के रूप में देखता हूं।

मैंने बड़े पैमाने पर filehelpers का उपयोग किया है और यह सीएसवी के निर्माण के लिए बहुत बढ़िया है

यहां वह फ़ंक्शन है जिसे आप स्ट्रिंग सूची से सीएसवी फ़ाइल की एक पंक्ति उत्पन्न करने के लिए उपयोग कर सकते हैं (IEnumerable (स्ट्रिंग के) या स्ट्रिंग एरे के रूप में भी इस्तेमाल किया जा सकता है):

 Function CreateCSVRow(strArray As List(Of String)) As String Dim csvCols As New List(Of String) Dim csvValue As String Dim needQuotes As Boolean For i As Integer = 0 To strArray.Count() - 1 csvValue = strArray(i) needQuotes = (csvValue.IndexOf(",", StringComparison.InvariantCulture) >= 0 _ OrElse csvValue.IndexOf("""", StringComparison.InvariantCulture) >= 0 _ OrElse csvValue.IndexOf(vbCrLf, StringComparison.InvariantCulture) >= 0) csvValue = csvValue.Replace("""", """""") csvCols.Add(If(needQuotes, """" & csvValue & """", csvValue)) Next Return String.Join(",", csvCols.ToArray()) End Function 

जैसा कि मुझे लगता है, VB.NET से C # में परिवर्तित करना मुश्किल नहीं होगा I

विनिर्देशों के लिए, http://en.wikipedia.org/wiki/Comma-separated_values देखें

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

शायद आपके विशिष्ट मामले में निर्यातक को लिखना बहुत मुश्किल नहीं है, लेकिन इस पुस्तकालय के बारे में अच्छी बात यह है कि यह द्विदिश है यदि आप अपने आप को सड़क पर सीएसवी का उपभोग करते हैं तो यह बहुत अधिक कोड नहीं है, और / या भविष्य के परियोजनाओं पर उपयोग करने के लिए आपको एक सुसंगत पुस्तकालय देता है

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

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

मुझे यह महत्वपूर्ण लिंक मिला जो काफी साफ है। अभी तक इसे करने की कोशिश नहीं की, आपको पता चल जाएगा कि यह कैसे जाता है!

http://www.codeproject.com/KB/linq/LINQtoCSV.aspx

अधिक बारीकी से देख रहे हैं, यह कार्यान्वयन अनिवार्य रूप से केवल बुनियादी नियमों का उपयोग करता है:

विशेष वर्ण = \ n \ "और विभाजक चार

अगर विशेष वर्ण मिलते हैं, तो उद्धरणों के आस-पास होते हैं दोहरे उद्धरण के साथ उद्धरण बदलें

अनिवार्य रूप से क्रिस ने उल्लेख किया है मुझे लगता है कि ऐसा करने का सबसे आसान तरीका है सरल नियमों के आधार पर मेरी सहायक पद्धति बनाने और उपयोगकर्ता-संबंधी आधार पर संशोधन करना।

क्या आप एक स्ट्रिंग सरणी का उपयोग कर सकते हैं और फिर इसका प्रयोग कर सकते हैं:

 string out = ""; string[] elements = { "1", "2" }; foreach(string s in elements) { out += s + "," }; out = out.substring(0, out.Length-1);