【发布时间】:2016-06-09 20:27:21
【问题描述】:
我需要将大型数据表(5000 行和 8880 列)保存到 CSV 文件。所以我先将DataTable 保存到StringBuilder,然后使用File.WriteAllText 保存到文件。但是由于表的大小,它给了我内存不足异常。我正在考虑使用StreamWriter。谁能帮忙改用StreamWriter?
谢谢!
StringBuilder sb = new StringBuilder();
string[] CSVcolumnNames = sortedDT.Columns.Cast<DataColumn>().
Select(column => column.ColumnName).
ToArray();
sb.AppendLine(string.Join(",", CSVcolumnNames));
foreach (DataRow row in sortedDT.Rows)
{
string[] fields = row.ItemArray.Select(field => field.ToString()).
ToArray();
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText(CSVpath, sb.ToString());
【问题讨论】:
-
简答:Ctrl-H
StreamBuilder->StreamWriter。 Ctrl-HAppend->Write。修复文件名,删除最后一行。完成。
标签: c# csv datatable stringbuilder