我正在使用Apache POI生成Excel电子表格(.xlsx)。我的许多单元格样式都包含数据格式字符串,但是当自动调整包含此类样式的列时,列宽基于未格式化的单元格内容。
示例:
DataFormat format = wb.createDataFormat();
CellStyle dollars_m = wb.createCellStyle();
dollars_m.setDataFormat(format.getFormat("_($* #,##0.0,,\"m\"_);_($* (#,##0.0,,\"m\");_(@_)"));
单元格值123456789.01将调整大小,就好像单元格包含12个字符而不是实际包含的8个字符($ 123.5m)。
我可以在自动调整大小之前强制使用公式来解决自己,是否有一种强制格式应用的方法?
答案 0 :(得分:0)
从3.10开始,Apache POI现在在确定autoSizeColumn
中列的宽度之前应用格式。必须在调用DataFormatter#evaluateInCell
之前使用autoSizeColumn
评估公式单元格,否则宽度将基于缓存的公式结果。