.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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