c# - Worksheet.SaveAs ("file.csv") 在 .NET 3.5 和 .NET 4.0 中的工作方式不同

标签 c# .net excel interop

我有一个使用 Interop.Excel 功能用 C# 编写的项目。 Worksheet.SaveAs("file.csv", ...) 方法与项目构建所针对的 .NET Framework 的工作方式不同。

  • 针对 .NET Framework 3.5 编译时,该方法使用分号 (;) 作为分隔符(这正是我需要的)来保存 CSV 文件。
  • 为 .NET Framework 4 编译时,它使用逗号 (,) 作为分隔符,代码中没有任何其他更改。

谁能解释一下发生了什么? 我如何强制 excel 在 CSV 文件中始终使用分号作为分隔符,而与目标 .NET Framework 无关?

最佳答案

您可以像这样为您的 Excel 实例设置某些区域设置,以强制其写入 CSV 的方式:

var cI = new CultureInfo(locale);
var excel = new Microsoft.Office.Interop.Excel.Application();

excel.UseSystemSeparators = false;

excel.ThousandsSeparator = cI.NumberFormat.NumberGroupSeparator;
excel.DecimalSeparator = cI.NumberFormat.NumberDecimalSeparator;

关于c# - Worksheet.SaveAs ("file.csv") 在 .NET 3.5 和 .NET 4.0 中的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32473815/

相关文章:

c# - 为什么我能够使用 AES 256 位解密来解密修改后的加密数据

.net - 如何在此 RegEx 中指定可选的捕获组?

excel - "Application"作为 Excel VBA 中的默认对象呢?

c# - 如何访问正在呈现的 ListBox 中的项目而不是其源数据?

c# - PictureBox 在 RotateFlipType 之后不重绘,但它使用断点

c# - 看起来 MSVS 11.0 Beta 破坏了 MSVS 10.0 安装

excel - 从另一个工作表的单元格列替换第一行中的标题名称

excel - 使用单元格值和通配符的困难vlookup公式

c# - 客户端发送 SOAP 请求并接收响应

c# - Asp.Net Dropdownlist 设置项目查看限制