Запись в файл с помощью CsvHelper в C#

Я попытался записать в CSV-файл с помощью CsvHelper в C#.
Это ссылка на библиотеку http://joshclose.github.io/CsvHelper/

я использовал код на веб-сайте.

вот мой код:

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

он записывает только часть данных в csv-файл.
Последние ряды отсутствовали.
Не могли бы вы помочь с этим.

3 ответов


вам нужно смыть поток. Оператор 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
}

предполагая, что writer является своего рода TextWriter, вы должны добавить вызов, чтобы очистить содержимое перед закрытием writer:

writer.Flush()

Если последние строки отсутствуют, это наиболее вероятная причина.


когда я добавил этот код после того, как код цикла работает хорошо

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

проблема возникла из-за того, что я не закрыл соединение