Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存文件时使用Interop.Excel UTF-8编码_C#_.net_Excel_Csv_Encoding - Fatal编程技术网

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

C# 保存文件时使用Interop.Excel UTF-8编码,c#,.net,excel,csv,encoding,C#,.net,Excel,Csv,Encoding,我在用UTF-8编码将Excel文件保存为CSV时遇到问题 因为我的Excel文档中有非标准字符(不同的语言),所以保存为CSV时会出现问题。这是通过将web选项编码设置为UTF-8实现的 我正在创建一个基本的C#程序,它可以解析Excel文件中的数据并将其保存为CSV格式,但我无法使用UTF-8编码进行保存 我正在使用Microsoft.Office.Interop.Excel处理Excel文件 这是我的代码: private Excel.Application application = n

我在用UTF-8编码将Excel文件保存为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文件总是一团糟


谢谢

我相信您希望在工作簿级别,而不是应用程序级别执行此操作。另外,由于没有将文件格式包括为CSV,
SaveAs
可能使用本机格式,但仅更改文件扩展名

试试这些,看看它们是否解决了您的问题:

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

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

XlFileFormat.xlCSVUTF8

.net通过互操作而不是vba api工作。互操作api没有这样的选项: