使用csvhelper将数据表导出到csv
问题描述:
我正在尝试使用库csvhelper将名为CHAIN的现有数据表(不是数据集)导出到csv文件。看起来我需要创建一个新的数据表并将CHAIN加载到其中,而不是仅仅迭代CHAIN,但我不知道如何做到这一点。请看下面的代码,让我知道什么是错的?
我尝试过:
I'm trying to use the library csvhelper to export an existing datatable (not a dataset) called CHAIN to a csv file. It looks like I need to create a new datatable and load CHAIN into it, rather than just iterate over CHAIN, but I'm not sure how to do this. Please take a look at the code below and let me know what's wrong?
What I have tried:
public void EXPORT_CSV()
{
using (var textWriter = File.CreateText(@"D:\Temp\NewCsv.csv"))
using (var csv = new CsvWriter(textWriter))
using (var DT = new DataTable())
{
//dt.Load(CHAIN); not sure how to do this
// Write columns
foreach (DataColumn column in DT.Columns) //copy datatable CHAIN to DT, or just use CHAIN
{
csv.WriteField(column.ColumnName);
}
csv.NextRecord();
// Write row values
foreach (DataRow row in DT.Rows)
{
for (var i = 0; i < DT.Columns.Count; i++)
{
csv.WriteField(row[i]);
}
csv.NextRecord();
}
}
}
答
根据您的代码,看起来您只需要使用(var DT = new DataTable())行删除,并用 DT
的引用c $ c> CHAIN :
Based on your code, it looks like you just need to remove theusing (var DT = new DataTable())
line, and replace each reference toDT
withCHAIN
:
public void EXPORT_CSV()
{
using (var textWriter = File.CreateText(@"D:\Temp\NewCsv.csv"))
using (var csv = new CsvWriter(textWriter))
{
// Write columns
foreach (DataColumn column in CHAIN.Columns)
{
csv.WriteField(column.ColumnName);
}
csv.NextRecord();
// Write row values
foreach (DataRow row in CHAIN.Rows)
{
for (var i = 0; i < CHAIN.Columns.Count; i++)
{
csv.WriteField(row[i]);
}
csv.NextRecord();
}
}
}
这是在文档中。 CsvHelper [ ^ ]
This is in the documentation. CsvHelper[^]