版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/su1573/article/details/86581928
背景:
excel模板在项目中,通过代码填充数据后,在下方的单元格里能够通过公式自动计算出结果,结果是,数据能填充,但是公式不能自动执行,只能打开生成的文件,双击数据单元格后,才能自动执行公式;
采用方案:
1、强制使sheet页执行公式
XSSFSheet sheetS1 = (XSSFSheet) workBook.getSheet(sheetName);
sheetS1.setForceFormulaRecalculation(true); //强制执行该sheet中所有公式
经测试,该方法在本项目不适用;
2、重定位公式所在的cell
if (HSSFCell.CELL_TYPE_FORMULA == cellS.getCellType()) {
//取得公式单元格的公式,重新设置
cellS.setCellFormula(cellS.getCellFormula());
}else {
cellS.setCellValue(value+"");// 给单元格赋String值
}
在if判断条件中,取得cell的类型,如为“2”,则为公式,那么先取该cell中的公式,然后再重新设置一下;
经测试,该方法在本项目可行;故采用第二种方法
当然上面两种方式可选用适合自己项目的,谢谢采纳!!!
author:su1573