场景:POI读取Excel模板。 当使用POI操作Excel时,发现由POI生成的公式能够在打开Excel是被执行, 而事先手工写入Excel模板文件的公式则不自动被调用,必须手动双击该Cell才能生效。
采取的办法: 1.使用cell.setCellFormula方法重新在制定Cell里写入公式。 2.使用sheet.setForceFormulaRecalculation(true);方法强制让改Sheet执行公式。 当然,在方法2能够生效的情况下我们还是推荐使用方法2来解决这个问题。
Poi 将excel单元格设置为空,使公式引用可用
使用poi生成excle报表时遇到这样的问题,当前单元格没值,在设置当前单元格为空时遇到问题,因为没值的这个单元格在后面的公式中被引用,因为是空导致公式不能解析,但发现excel本身的这种情况却没有问题,遂发现是我在poi设置空值时使用的是:sheet.getRow(i).getCell(j).setCellValue(""); 该空值不被excel所识别,后发现解决方案如下:将该单元格类型设置为:HSSFCell.CELL_TYPE_BLANK类型即可。
//将当前单元格由数值类型设置为空 (设置为空的单元格才能参与excel公式计算,而""," " null等均不能参与计算)
sheet.getRow(k).getCell(j).setCellType(HSSFCell.CELL_TYPE_BLANK);