使用C#中的CsvHelper写入文件

Nay*_*ara 18 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);
}
Run Code Online (Sandbox Code Playgroud)

它只将一部分数据写入csv文件.
最后一行丢失了.
你能帮忙吗?

Gre*_*lor 35

您需要刷新流.超出范围时,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
}
Run Code Online (Sandbox Code Playgroud)


Nay*_*ara 9

什么时候,我在循环代码运行良好后添加了这段代码

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

出现问题是因为我没有关闭Connection

  • 你应该处理你的作家,"使用"是一个很好的实践`使用(var writer = new StreamWriter(filepath)){...}` (12认同)

Mar*_*kus 8

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

writer.Flush()
Run Code Online (Sandbox Code Playgroud)

如果缺少最后一行,这是最可能的原因.