【发布时间】:2017-09-25 10:40:24
【问题描述】:
我正在使用 Apache POI 3.17(当前)。当我使用 HSSFCell.setFormula() 插入像“A1+17”这样的公式时,它可以工作。当我在流模式下执行相同操作时,使用 SXSSFCell.setFormula() 公式会出现在输入行中(带有前导“=”),但单元格中显示的结果始终为 0。
我尝试使用单元格类型 NUMERIC 和 FORMULA。这是我最小的不工作示例:
final SXSSFWorkbook wb = new SXSSFWorkbook();
final SXSSFSheet sheet = wb.createSheet("Test-S");
final SXSSFRow row = sheet.createRow(0);
final SXSSFCell cell1 = row.createCell(0);
cell1.setCellType(CellType.NUMERIC);
cell1.setCellValue(124);
final SXSSFCell formulaCell1 = row.createCell(1);
formulaCell1.setCellType(CellType.FORMULA);
formulaCell1.setCellFormula("A1 + 17");
final SXSSFCell formulaCell2 = row.createCell(2);
formulaCell2.setCellType(CellType.NUMERIC);
formulaCell2.setCellFormula("A1+18");
FileOutputStream os = new FileOutputStream("/tmp/test-s.xlsx");
wb.write(os);
wb.close();
os.close();
三个单元格显示为 124/0/0,尽管在输入行中公式显示正确。
感谢任何提示。
【问题讨论】:
标签: java apache-poi formulas