我在将Excel文件另存为UTF-8编码的CSV时遇到问题。
因为我的Excel文档中有非标准字符(不同语言),所以当保存为CSV时会导致问题。通过将网络选项编码设置为UTF-8来实现此was solved here。
我正在创建一个基本的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文件总是一团糟。
谢谢!
答案 0 :(得分:3)
我相信您希望在工作簿级别上执行此操作,而不是在应用程序上执行此操作。此外,这是可能的,因为您没有将文件格式包含为SaveAs
使用本机格式但仅更改文件扩展名的CSV。
试试这些,看看它们是否解决了您的问题:
Workbook.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
Workbook.SaveAs(NewFileUrl, XlFileFormat.xlCSV);
答案 1 :(得分:0)
建议的解决方案对我不起作用。但是根据文档,现在有一个
CSV-UTF8的XlFileFormat:
discoveryJson.path("some_endpoint").toString();
"https://what.the.com/heck"
discoveryJson.path("some_endpoint").asText();
https://what.the.com/heck
https://docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat