我正在使用 Apache POI HSSF 从我的 Java Web 应用程序生成 Excel 电子表格。
我需要一个格式为“数字”的单元格,带有 2 个小数点。(我在 Java 中的值是 BigDecimals,但我可以将它们转换为双精度数,没问题。)我正在使用以下代码:
CellStyle numericStyle = wb.createCellStyle();
numericStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));
// output in this new style...
row.createCell(cellnum).setCellValue(((BigDecimal)value).doubleValue());
row.getCell(cellnum).setCellStyle(numericStyle);
问题是,即使这样有效,Excel 仍将我的单元格显示为General。它们需要显示为Number。因此,例如,0 显示为 0,但它应该是 0.00,如果格式正确 ( Number ) 就会发生这种情况。
我看到它生成为常规,因为我可以右键单击一个单元格,然后选择“格式化单元格”来查看它现在是什么。它需要由 Apache POI HSSF 设置为“数字”。