1

我能够生成 excel 文件,但包含公式的单元格(假设显示列的整数值的总和)最初显示值为 0。然后,当我编辑一些列单元格时,它会更新为已编辑单元格的值的总和,而不是将未编辑单元格的值相加。

我的一段代码是:

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);

但它仍然给出了相同的结果。谁能告诉我出了什么问题?提前致谢。

4

3 回答 3

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,也许这就是问题所在。

于 2012-08-24T07:53:42.160 回答
1

使用 wb.setForceFormulaRecalculation(true); 在关闭文件之前

它将计算公式

于 2020-12-04T13:23:03.823 回答
0

也许您稍后会在代码中更改单元格的样式

于 2013-01-08T13:10:03.887 回答