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# - C#格式化数字的不同语法

    c# - 双重格式-显示零个或两个小数

    c# - 任务和垃圾收集存在哪些问题?

    c# - EF Core 是否允许唯一列包含多个空值?

    c# - 将属性子对象移动到根

    vba - 在过程结束和错误处理程序中编写结束语句的好习惯是什么?

    c# - 是否可以使用 closedXML 从右到左制作 excel 工作表

    excel - VBA打开资源管理器并选择而不是打开选定的文件名

    c# - 将结构数组转换为 IntPtr

    从 C++ DLL 调用时,带有参数的 C# 委托(delegate)回调导致 AccessViolation