我有一个将数据保存到Excel文件的ETL.问题是没有为整数写出小数.例:
14.00
Run Code Online (Sandbox Code Playgroud)
被写成了
14
Run Code Online (Sandbox Code Playgroud)
我写出该行的代码是
loWorksheet.Cells[liRowNum, 5] = lcAmount.ToString("0.00");
Run Code Online (Sandbox Code Playgroud)
当我单步执行代码时,它显示为14.00,但在Excel文件中它不保留小数位.这是可以在我的代码中修复的东西还是这个Excel问题?有什么建议?
使用 C# 和 VSTO,可以使用以下代码设置 Excel 中单元格的类型:
\n\nworksheet.Cells[i, j].NumberFormat = magicString;\n
Run Code Online (Sandbox Code Playgroud)\n\n,其中worksheet
是类的对象Microsoft.Office.Interop.Excel.Worksheet
,i
是单元格的行号,j
是单元格的列号,magicString
是定义单元格类型的一些字符串(注意:Excel 将类型称为format,但下面我使用词类型)。
以下magicString
定义了以下 Excel 类型:
string magicString = "";
- 定义“常规”Excel 类型;string magicString = "@";
- 定义“文本”Excel 类型;string magicString = "0%";
- 定义“百分比”Excel 类型。当我想设置“日期”Excel类型时,情况会更复杂。复杂程度与Excel的本地化和Windows系统的本地化有关。
\n\n因此,例如,我有一个俄语版本的 Excel(特别是,所有类型都是用俄语编写的 Excel),而我的 Windows 系统具有以下短日期格式:“dd.MM.yyyy”(可以找到此设置在控制面板 > 区域和语言 > 格式中)。我有英文版的 Windows,但这完全不起作用。
\n\n因此,如果我magicString …