保存文件时Interop.Excel UTF-8编码

时间:2015-12-24 14:02:08

标签: c# .net excel csv encoding

我在将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文件总是一团糟。

谢谢!

2 个答案:

答案 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