2015-09-07 26 views
8

में शीर्षलेख जोड़ें I कक्षा का उपयोग DataTable में एक सीएसवी फ़ाइल में पंक्तियों को लिखने के लिए कर रहा है। कोड काम करता है लेकिन मैं इसे हेडर लिखने के लिए नहीं मिल सकता।मैन्युअल रूप से CsvHelper.CsvWriter

क्लास मैप बनाने के बिना मैन्युअल रूप से हेडर कैसे जोड़ सकता हूं?

http://joshclose.github.io/CsvHelper/

DataTable dt = GetDataTableFromDB(); 

System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); 
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(memoryStream); 
CsvHelper.CsvWriter writer = new CsvHelper.CsvWriter(streamWriter); 

foreach (DataColumn column in properties.Columns) 
    writer.WriteHeader(column.ColumnName); //<--- How do I write to column 

foreach (DataRow row in dt.Rows) 
{ 
    foreach (object item in row.ItemArray) 
     writer.WriteField(item.ToString()); 

    writer.NextRecord(); 
} 

उत्तर

15

यह Writing to a CSV using a DataTable तहत documentation में वास्तव में है।

मैं यहां कोड उदाहरण भी डालूंगा।

using(var dt = new DataTable()) 
{ 
    dt.Load(dataReader); 
    foreach(DataColumn column in dt.Columns) 
    { 
     csv.WriteField(column.ColumnName); 
    } 
    csv.NextRecord(); 

    foreach(DataRow row in dt.Rows) 
    { 
     for(var i = 0; i < dt.Columns.Count; i++) 
     { 
      csv.WriteField(row[i]); 
     } 
     csv.NextRecord(); 
    } 
} 

शीर्षलेख CSV फ़ाइल में कुछ विशेष या अलग नहीं हैं।

using (StreamWriter sw = new StreamWriter(@"C:\output.csv")) 
{ 
    using (CsvWriter writer = new CsvWriter(sw)) 
    { 
    writer.WriteHeader<YourClass>(); 

    writer.WriteRecord(yourRecordVariable); 
    } 
} 

के रूप में लेखक जोश बंद करके Google समूहों पर here पोस्ट किया गया:

+0

मैं इस विधि का उपयोग करना चाहता हूं, लेकिन कभी भी '' datareader'' का उपयोग नहीं किया है। मौजूदा डेटाटेबल से नए डेटाटेबल को कैसे पॉप्युलेट करना है, मैं कहां से पता लगा सकता हूं? – Zeus

6

सबसे आसान तरीका है

writer.WriteHeader<YourClass>(); 

अधिक पूर्ण उदाहरण उपयोग करने के लिए है।

संबंधित मुद्दे