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

本文关键字:Excel UTF-8 编码 Interop 保存文件 | 更新日期: 2023-09-27 18:27:55

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

谢谢!

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

我相信您希望在工作簿级别而不是在应用程序级别上做到这一点。此外,由于没有将文件格式包含为CSV,SaveAs可能使用本机格式,但只更改了文件扩展名。

试试这些,看看它们是否能解决你的问题:

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

建议的解决方案对我不起作用。但根据文档,现在有一个
CSV-UTF8:的XlFileFormat

XlFileFormat.xlCSVUTF8

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