У меня проблема с сохранением файла Excel в виде CSV с кодировкой UTF-8.

Поскольку в моем документе Excel используются нестандартные символы (другой язык), при сохранении в виде CSV возникают проблемы. Эта была решена здесь путем установки кодировки веб-параметров на UTF-8 .

Я создаю базовую программу на C #, которая анализирует данные из файла Excel и сохраняет их в формате CSV, но я не могу сохранить их с использованием кодировки UTF-8.

Я использую Microsoft.Office.Interop.Excel для работы с файлами Excel.

Это мой код:

private Excel.Application application = new Excel.Application { Visible = false };
private Excel.Workbook Workbook = application.Workbooks.Open(OrigionalFileUrl);
Workbook.SaveAs(NewFileUrl);

Я пробовал установить

application.DefaultWebOptions.Encoding = MsoEncoding.msoEncodingUTF8;

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

Благодарность!

5
Yuval Feldman 24 Дек 2015 в 17:02

2 ответа

Лучший ответ

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

Попробуйте это и посмотрите, решат ли они вашу проблему:

Workbook.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
Workbook.SaveAs(NewFileUrl, XlFileFormat.xlCSV);
5
Hambone 24 Дек 2015 в 16:48

Предложенное решение у меня не сработало. Но согласно документации теперь есть
XlFileFormat для CSV-UTF8:

XlFileFormat.xlCSVUTF8

https://docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat

0
wasigh 28 Фев 2019 в 14:48