如果格式化单元作为货币的,您有4种选择:
每个款式的内部格式如下:
-NT $ 1,234.10
< numFmt formatCode = “” NT $ “#,## 0.00” numFmtId = “164”/>
[RED] NT $ 1,234.10
< numFmt formatCode = “” NT $ “#,## 0.00; [红色]” NT $ “#,## 0.00” numFmtId = “164”/>
-NT $ 1,234.10
< numFmt formatCode = “” NT $“#, ## 0.00 _);(“NT $”#,## 0.00)“numFmtId =”“/>
[RED] -NT $ 1,234.10
< numFmt formatCode = “” NT $ “#,## 0.00 _); [红色](” NT $ “#,## 0.00)” numFmtId =” “/>
注意:在NT $之前和之后有一对双引号(”)。
(要获得XLSX的内部格式,只需将其解压缩形式信息是可用<解压目录> \ XL \ Styles.xml看看这个answer如果您需要了解更多信息。)
(供参考:在formatCode
中,'0'代表一个数字,'#'代表一个数字,但如果数字不够大,则不会出现,所以任何少于1000的数字都不会有逗号。'_'在格式3中,'1.75'显示为'NT $ 1.75',最后一个是空格。)
(供参考:在numFmtId
中,对于案例1和案例2,编号164是fo r用户定义的。对于情况3和4,7号和8是build-in style。)
对于使用POI/NPOI开发者,你可能会发现,如果格式化使用0x7的或0x8中使用Build In Format您的货币列,你只能得到第三或第四选择。你无法获得第一或第二选择。
要获得第一个选择,您可以建立在样式0x7 "$#,##0.00);($#,##0.00)"
上。您需要在其前面添加货币符号和双引号。
styleCurrency.DataFormat = workbook.CreateDataFormat().GetFormat("\"NT$\"#,##0.00");
将此格式应用于带编号的单元格。一旦你打开Excel结果文件,右键点击检查格式,你会看到第一个选择。
请随时评论这篇文章。