使用C#中的CsvHelper写入文件

本文关键字:文件 CsvHelper 中的 使用 | 更新日期: 2023-09-27 17:59:13

我尝试在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文件
缺少最后一行
你能帮忙吗。

使用C#中的CsvHelper写入文件

您需要刷新流。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
}

当,我在循环代码工作良好后添加了此代码

var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
     csv.WriteRecord(value);
}
writer.Close();

出现此问题是因为我没有关闭连接

假设writer是某种TextWriter,您应该在关闭编写器之前添加一个刷新内容的调用:

writer.Flush()

如果最后几行缺失,这是最有可能的原因。

添加到@greg的答案:

using (var sr = new StreamWriter(@"C:'out.csv", false, Encoding.UTF8)) {
  using (var csv = new CsvWriter(sr)) {
    csv.WriteRecords(values);
  }
}