我正在使用FileHelpers将DataTable内容写入CSV文件。
由于DataTable中有大量记录,我选择将结果集转储到CSV文件中,如下所示
CommonEngine.DataTableToCSV(dt, filename)
CSV已成功写入200万条大小为150MB的记录。
但我想在此CSV文件的第一行添加归档标题。
FileHelper是否允许使用CommonEngine.DataTableToCSV编写标头?
答案 0 :(得分:6)
在致电engine.HeaderText = engine.GetFileHeader()
WriteFile
答案 1 :(得分:1)
查看源代码,看起来无法设置标题行。但是,复制代码并编写自己的替代品很容易。像这样:
public static void DataTableToCsv(DataTable dt, string filename, CsvOptions options, string headerLine)
{
using (StreamWriter writer = new StreamWriter(filename, false, options.Encoding, 102400))
{
// output header
writer.Write(headerLine);
writer.Write(StringHelper.NewLine);
foreach (DataRow row in dt.Rows)
{
object[] itemArray = row.ItemArray;
for (int i = 0; i < itemArray.Length; i++)
{
if (i > 0)
{
writer.Write(options.Delimiter);
}
writer.Write(options.ValueToString(itemArray[i]));
}
writer.Write(StringHelper.NewLine);
}
writer.Close();
}
}