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

5

我遇到了一个问题,无法将Excel文件保存为UTF-8编码的CSV格式。

由于我的Excel文档中含有非标准字符(不同语言),因此在保存为CSV时出现了问题。通过设置Web选项编码为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文件混乱不堪。
谢谢!
2个回答

5

我相信你想在工作簿级别上进行操作,而不是在应用程序上。 另外,可能是因为您没有将文件格式设置为CSV,所以SaveAs正在使用本机格式,但仅更改文件扩展名。

尝试以下方法,看看它们是否解决了您的问题:

Workbook.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
Workbook.SaveAs(NewFileUrl, XlFileFormat.xlCSV);

0

2
.NET通过Interop工作,而不是通过VBA API。Interop API没有这样的选项:https://learn.microsoft.com/dotnet/api/microsoft.office.interop.excel.xlfileformat - valker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接