我注意到,当使用POI创建电子表格时,为在逗号样式中设置的默认样式(在Excel中打开时设置并在Office 2007中单击“逗号样式”按钮时)会生成包含货币符号的格式(与Excel中逗号样式的定义相反)。
这种情况在源代码中没有任何格式更改代码时发生,因此它似乎内置于POI中,其效果是工作表范围。
通过创建此类文件并将单元格设置为Excel中的逗号样式,然后执行单元格格式(右键单击等),它似乎是自定义格式,格式为
_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)
在普通的Excel文件中,预期的格式是没有货币符号的会计。
有没有办法更改POI中的默认样式以纠正逗号样式的行为?
我正在使用NPOI 1.2.5(.NET Framework端口)对此进行测试,我认为它完全等同于派生的Apache POI表单。
答案 0 :(得分:1)
我遇到了一些困难,找到了原因,我正在回答作为参考。
我正在使用NPOI的最新稳定版本。这是1.2.5。
检查源(在文件BuiltinFormats.cs中),定义了标准格式,我发现了以下内容
PutFormat(m, 0x2b, "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)");
PutFormat(m, 0x2c, "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)");
在包含标准格式列表的http://support.microsoft.com/kb/147942中,有两个条目是
0x2b _(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)
0x2c _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
NPOI源中的这种反转似乎导致了逗号样式的无效行为。
答案 1 :(得分:1)
我遇到了同样的问题,可以确认问题已在3.10版本中修复