我创建了一个工作表, out.xls ,其中单元格D6 = D5 * 2,D5设置为1.我的问题是当我在jxl中将值插入D5时,D6从不计算。当我在excel中插入1到D5时,D6只保留它最初计算的值。
注意:我有一个更大的编程问题,我试图解决,这只是一个非常小的版本,以减少错误。
这是我第一次使用Jexcel而且我去年刚刚学过java,所以任何帮助都会受到赞赏。我昨天花了6个小时试图在网上找到答案,但无济于事。
输出附在代码下面 代码:(省略主要和进口)
WorkbookSettings custom= new WorkbookSettings();
custom.setRationalization(true);
custom.setRefreshAll(true);
custom.setUseTemporaryFileDuringWrite(true);
Workbook workbook = Workbook.getWorkbook(new File("out.xls"),custom);
WritableWorkbook copy = Workbook.createWorkbook(new File("output.xls"), workbook);
WritableSheet sheet2 = copy.getSheet(0);
SheetSettings customsheetsettings=new SheetSettings(sheet2);
customsheetsettings.setAutomaticFormulaCalculation(true);
Number number = new Number(3, 4, 3);
sheet2.addCell(number);
copy.write();
copy.close();
workbook.close();
Workbook workbook2 = Workbook.getWorkbook(new File("output.xls"));
Sheet sheet=workbook2.getSheet(0);
System.out.println("D5:"+sheet.getCell(3,4).getContents());
FormulaCell formula5=(FormulaCell) sheet.getCell(3,5);
System.out.println("Formula:"+formula5.getFormula());
System.out.println("D6:"+formula5.getContents());
NumberFormulaCell nfc=(NumberFormulaCell)sheet.getCell(3, 5);
System.out.println(nfc.getValue());
workbook2.close();
输出:
D5:3
Formula:D5*2.0
D6:2
2.0
答案 0 :(得分:2)
JExcel仅允许读取或写入Excel文件,并提供Excel文件内容的Java表示。它不会替代Excel。
添加公式时,将在Excel中打开生成的文件时计算此公式,但仅在Excel中计算。该单元格不是由JExcel计算的。
答案 1 :(得分:0)
如果有其他人想知道,POI使用FormulaEvaluator类来做到这一点。
ATT