我已經創建了一個工作表,out.xls其中有單元格D6 = D5 * 2和D5設置爲1.我的問題是,當我插入一個值到Jxl的D5,D6從不計算。當我在Excel中插入1到D5時,D6只保留它最初計算的值。Jexcel公式計算錯誤
注意:我有一個更大的編程問題,我試圖解決,這只是一個非常縮小的版本,以減少錯誤。
這是我第一次使用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
好的,謝謝。無論如何得到計算結果?對於我提到的較大的項目,我一直在嘗試採集各種數據,將它們插入到對其進行計算的工作表中,然後將結果放在工作表的其他位置。 Jexcel是否可以實現上述項目?我可以嘗試使用宏,但如果可能的話,我寧願使用java。 – user1433764
恐怕不是。 JExcel不做任何計算。看來,宏是一個更好的選擇。 – Teetoo
感謝您的意見。我會研究宏。 – user1433764