> It is not very clear now for me what to use: evaluateFormulaCell or > notifyUpdateCell? > > For example if CellA receives new input and CellB = Cell A+CellC , CellC = > CellA + CellD and Cell E = CellA + CellB + CellC. > Which functions should I use to obtain the correct value of CellE? The HSSFFormulaEvaluator.notify~() methods are only needed when modifying spreadsheets *during* evaluation. They are not needed if all input values remain unchanged after calling any evaluate~() method.
// one off evaluation: cellA.setCellValue(5.0); // CellA receives new input CellValue result = evaluatorE.evaluate(cellE); // for repeated re-calculations: cellA.setCellValue(5.0); // changing input value evaluatorA.notifyUpdateCell(cellA); // clear all cached result values that depend on this result = evaluatorE.evaluate(cellE); > About the error message I just can reconfirm that both evaluated cells are > in the same workbook and it should not give this error: > > java.lang.RuntimeException: Specified sheet from a different book If you are sure of this (i.e. that the evaluated cell is in the same workbook as that of the evaluator), then you probably have found a bug. Please upload a simple example based on the following (fill in the '...' bits: HSSFWorkbook wbA = ... int sheetIndex = ... int rowIndex = ... int columnIndex = ... HSSFFormulaEvaluator evaluatorA = new HSSFFormulaEvaluator(wbA); // set up rest of multiple workbook environment ... // evaluate cell HSSFCell cellA = wbA..getSheetAt(sheetIndex).getRow(rowIndex).getCell(columnIndex); evaluatorA.evaluate(cellA); // unexpected crash "Specified sheet from a different book" --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
