我能够生成excel文件,但包含公式的单元格(假设显示列的整数值的总和)最初显示值0。然后,当我编辑一些列单元格时,它会使用 ONLY 值的总和进行更新,而不是添加未编辑单元格的值。
我的代码是:
Cell cell = row.createCell(size - 2);
cell.setCellValue("Total");
cell = row.createCell(size - 1);
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(D3:D4)");
另外,我尝试在上面的代码下面添加这些代码。
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);
但它仍然给出了相同的结果。谁能告诉我出了什么问题? 提前谢谢。
答案 0 :(得分:1)
我不知道为什么它不起作用,试试这个代码,它对我有用。
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(3);// Row 4
Cell cell = row.createCell(3); // Cell 'D'
cell.setCellValue(10);
row=sheet.createRow(2);// Row 3
cell=row.createCell(3);// Cell 'D'
cell.setCellValue(2);
cell=row.createCell(4);// Cell 'E'
cell.setCellValue("Total");
cell = row.createCell(5);// Cell 'F'
cell.setCellType(Cell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(D3:D4)");
唯一的区别是我使用Cell.CELL_TYPE_FORMULA
代替HSSFCell.CELL_TYPE_FORMULA
,也许这就是问题所在。
答案 1 :(得分:1)
使用wb.setForceFormulaRecalculation(true);关闭文件之前
它将计算公式
答案 2 :(得分:0)
也许您稍后会在代码
中更改单元格的样式