問題:
單元格內文本應該是這樣:

實際POI讀取到的內容是這樣:

而且,有的讀取正常,有的讀取不正常。
即使設置xlsx單元格的格式,也沒有作用

解決方法:
if (cell.getCellType() == CellType.NUMERIC) { return String.valueOf(new BigDecimal(cell.getNumericCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); //四舍五入去兩位【枚舉可自由替換】 }
更穩妥的方法:
if (cell.getCellType() == CellType.NUMERIC) { cell.setCellType(CellType.STRING);//先重置單元格格式 return String.valueOf(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//再 直接截取兩位【枚舉可自由替換】 }
擴展:
BigDecimal.setScale用法總結
https://www.cnblogs.com/sxdcgaq8080/p/12123917.html
