使用C#中的CsvHelper写入文件

时间:2014-04-21 07:12:44

标签: c# csvhelper

我尝试在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文件 最后一行丢失了 你能帮忙吗?

4 个答案:

答案 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);
  }
}