24

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

4 に答える 4

42

ストリームをフラッシュする必要があります。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
}
于 2016-10-15T17:34:25.563 に答える
8

writerこれがある種の TextWriter であると仮定すると、ライターを閉じる前にコンテンツをフラッシュする呼び出しを追加する必要があります。

writer.Flush()

最後の行が欠落している場合、これが最も可能性の高い理由です。

于 2014-04-21T07:24:05.807 に答える
2

@gregの答えに追加:

using (var sr = new StreamWriter(@"C:\out.csv", false, Encoding.UTF8)) {
  using (var csv = new CsvWriter(sr)) {
    csv.WriteRecords(values);
  }
}
于 2019-09-14T08:43:04.500 に答える