.Net web api скачать CSV-файл (разделитель Excel)C#

Место общения программистов C#
Anonymous
.Net web api скачать CSV-файл (разделитель Excel)

Сообщение Anonymous »

У меня есть конечная точка контроллера, из которой я хочу создать CSV-файл и загрузить его.
В настоящее время я использую nuget CsvHelper, и мой код выглядит следующим образом:

Код: Выделить всё

var cc = new CsvConfiguration(new System.Globalization.CultureInfo("sl-SI"));
using (var ms = new MemoryStream())
{
using (var sw = new StreamWriter(stream: ms, encoding: new UTF8Encoding(true)))
{
using (var cw = new CsvWriter(sw, cc))
{
cw.WriteRecords(ListOfReports);
}// The stream gets flushed here.
return File(ms.ToArray(), "text/csv", $"{docNumber.Trim()}_{docType}.csv");
}
}
Он генерировал CSV довольно хорошо, но проблема заключалась в том, что если я открывал его в Excel, вся строка находилась в первом столбце и не была разделена.
Я добавил эту часть:

Код: Выделить всё

cw.WriteField("sep=,", false);
cw.NextRecord();
До cw.WriteRecords(ListOfReports);, благодаря которому он работал в Excel, но если я открою его в Блокноте, в моя первая строка.
Я заметил разницу в CultureInfo. Если я установлю «sl-SI», он будет правильно работать в словенских окнах (разделитель будет быть ;), если я установлю «en-US», он будет работать в английской Windows (разделитель ,), но что мне нужно сделать, чтобы работать в любой культуре?
Кто-нибудь знает, как это исправить, чтобы оно правильно работало в Excel и любом другом текстовом редакторе?

Подробнее здесь: https://stackoverflow.com/questions/706 ... -separator

Вернуться в «C#»