我尝试在C#中使用CsvHelper写入CSV文件 这是图书馆http://joshclose.github.io/CsvHelper/
的链接我在网站上使用了代码。
这是我的代码:
var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
csv.WriteRecord(value);
}
它只将一部分数据写入csv文件 最后一行丢失了 你能帮忙吗?
答案 0 :(得分:31)
您需要刷新流。超出范围时,Using语句将刷新。
using (TextWriter writer = new StreamWriter(@"C:\test.csv", false, System.Text.Encoding.UTF8))
{
var csv = new CsvWriter(writer);
csv.WriteRecords(values); // where values implements IEnumerable
}
答案 1 :(得分:8)
假设writer
是某种TextWriter,你应该在关闭writer之前添加一个刷新内容的调用:
writer.Flush()
如果缺少最后一行,这是最可能的原因。
答案 2 :(得分:7)
什么时候,我在循环代码运行良好后添加了这段代码
var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
csv.WriteRecord(value);
}
writer.Close();
发生问题是因为我没有关闭连接
答案 3 :(得分:0)
添加到@greg的答案:
using (var sr = new StreamWriter(@"C:\out.csv", false, Encoding.UTF8)) {
using (var csv = new CsvWriter(sr)) {
csv.WriteRecords(values);
}
}