Спецификация Объединение столбцов Excel при работе с CSV C#C#

Место общения программистов C#
Ответить
Anonymous
 Спецификация Объединение столбцов Excel при работе с CSV C#

Сообщение Anonymous »

Я работаю над CSV-файлом, в котором пользователь загрузит шаблон, содержащий поле заголовка, после чего пользователь введет данные в CSV и сохранит CSV, после чего загрузит CSV в систему.все работало нормально, пока один из наших клиентов не сообщил нам о необходимости добавить поддержку арабского языка в CSV.
наш исторический код выглядел так, как показано ниже

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

byte[] fileBytes = System.IO.File.ReadAllBytes("prefilled data, Header Data 1, Header Data 2\n abc");
return File(fileBytes, "text/csv", Path.GetFileName(data.FilePath));
после запроса мы обновили наш код примерно так, как показано ниже

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

byte[] csvBytes = new UTF8Encoding(true).GetBytes("prefilled data, Header Data 1, Header Data 2\n رخصة تجارية");
return File(csvBytes, "text/tsv", fileName.Replace(".csv", ".tsv"));
но даже это не сработало. Скриншот для справки.
Изображение

после некоторого поиска в Google и помощи чатаGPT я узнал что Excel не распознает файл как utf-8, и мне следует использовать спецификацию, чтобы помочь Excel распознать файл как UTF-8.
после этого я выполнил приведенный ниже код с помощью чатаGPT.

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

byte[] utf8Bom = new UTF8Encoding(true).GetPreamble(); // `true` to add BOM
byte[] csvBytes = new UTF8Encoding().GetBytes("prefilled data, Header Data 1, Header Data 2\n رخصة تجارية");

byte[] resultBytes = new byte[utf8Bom.Length + csvBytes.Length];
Buffer.BlockCopy(utf8Bom, 0, resultBytes, 0, utf8Bom.Length);
Buffer.BlockCopy(csvBytes, 0, resultBytes, utf8Bom.Length, csvBytes.Length);

return File(resultBytes, "text/csv", fileName);
после этого Excel теперь может обрабатывать арабский текст, но проблема в том, что когда я заполняю все данные, сохраняю их и снова открываю файл, все столбцы объединяются в один, и я откройте данные еще раз в блокноте ++, "," автоматически заменяется на " " (вкладка).
как это исправить.

Подробнее здесь: https://stackoverflow.com/questions/790 ... sv-c-sharp
Ответить

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

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

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

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

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