工作表.saveas ("file.csv")在.net 3.5和.net 4.0中的工作方式不同
本文关键字:quot 工作 net 方式不 saveas file csv | 更新日期: 2023-09-27 18:11:55
我有一个使用Interop.Excel
功能用c#编写的项目。Worksheet.SaveAs("file.csv", ...)
方法的工作方式与项目所构建的。net框架不同。
- 当为。net Framework 3.5编译时,该方法使用分号(
;
)作为分隔符保存CSV文件(这就是我需要的)。 - 当编译为。net Framework 4时,它使用逗号(
,
)作为分隔符,无需在代码中进行任何其他更改。
您可以像这样为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;
根据此链接,"Local"变量在使用工作簿时正常工作。保存,但总是使用逗号作为分隔符,当你试图保存一个特定的工作表(如工作表(2).保存)。
所以创建一个新的工作簿并将数据复制到其中应该可以工作:
Orig.Sheets(2).Range("A1:Q999").Copy
Set Export = Workbooks.Add
With Export
.Worksheets(1).Range("A1").PasteSpecial (xlPasteValues)
.SaveAs Filename:=Path & "'Name.csv", FileFormat:=xlCSV, Local:=True
.Close SaveChanges:=False
End With