Spring Boot中Apache POI设置Excel公式结果显示英镑符号问题
Apache POI设置Excel单元格为英镑(GBP)格式
你的问题出在CellStyle的设置方式错误:style.setDataFormat((short)8)返回的是DataFormat对象,而非CellStyle,导致setCellStyle没有正确应用样式。
正确实现方式
推荐使用自定义格式字符串来设置英镑格式,这种方式不受Excel版本或区域设置影响,更可靠:
// 创建计算单元格并设置公式 Cell cellDynamic = row.createCell(59); cellDynamic.setCellFormula("SUM(J10*$J9+K10*$K$9+L10*$L$9+M10*$M$9+N10*$N$9)"); // 创建英镑格式的单元格样式 CellStyle gbpCellStyle = workbook.createCellStyle(); DataFormat dataFormat = workbook.createDataFormat(); // 设置带英镑符号的数值格式,保留两位小数 gbpCellStyle.setDataFormat(dataFormat.getFormat("£#,##0.00")); // 将样式应用到目标单元格 cellDynamic.setCellStyle(gbpCellStyle);
备选:使用内置格式索引
如果你确认Excel内置索引8对应英镑格式,也可以这样写(注意:不同Excel版本或区域设置可能导致索引变化,不推荐):
CellStyle gbpCellStyle = workbook.createCellStyle(); gbpCellStyle.setDataFormat((short)8); cellDynamic.setCellStyle(gbpCellStyle);
设置完成后,单元格计算结果会显示为£225.45格式。
内容的提问来源于stack exchange,提问作者dheeraj
相关产品推荐
相关产品推荐

