POI:java设置单元格公式,求和
java导出excel,之前写过全量导出,但是有时候报表中需要汇总,或者其他公式的数据。
这里就需要对单元格的格式调整,设置公式
主要代码
//给单元格设置公式
formulaCell.setCellFormula("SUM(F2:F4)");
//设置格式生效
XSSFFormulaEvaluator formulaEvaluator =
excel.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateFormulaCell(formulaCell);
这里是我写的案例的代码,我这里写死的对上面的字段求和
一般情况下不会写死,用记录的长度,和字段长度,找到自己要插入的位置,然后写进去。
如果要对每一条记录求和,那就把这里的代码写到循环里,应该不难。
//如果是最后一列添加一个求和计算,将结果放到同一列最后一个。(积分总和)
Row row2 = sheet.createRow(datalist.size()+1);//行
Cell formulaCell = row2.createCell(fields.length-1);//列
//设置公式
formulaCell.setCellFormula("SUM(F2:F4)");
//目前为止,还不能算出公式的值,我们需要使用POI的XSSFFormulaEvaluator 来计算值 :
//这里的转型,主要是对大文件(xss)和普通文件不同(hss)
XSSFFormulaEvaluator formulaEvaluator =
(XSSFFormulaEvaluator) workbook.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateFormulaCell(formulaCell);