Apache POI:cell.setCellFormula在生成excel时未提供所需的值

时间:2012-08-23 13:23:59

标签: excel apache-poi

我能够生成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);

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

3 个答案:

答案 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)

也许您稍后会在代码

中更改单元格的样式