//create a new workbook Workbook workbook = new Workbook(); IWorksheet worksheet = workbook.getWorksheets().get(0); worksheet.getRange("A1").setValue(1); worksheet.getRange("A2").setFormula("=A1"); worksheet.getRange("A3").setFormula("=SUM(A1, A2)"); //when get value, calc engine will first calculate and cache the result, then returns the cached result. Object value_A2 = worksheet.getRange("A2").getValue(); Object value_A3 = worksheet.getRange("A3").getValue(); //disable calc engine. workbook.setEnableCalculation(false); //Dirty() method will clear the cached value of the workbook. workbook.dirty(); //Calculate() will not work, because of workbook.EnablCalculation is false. workbook.calculate(); //it returns 0 because of no cache value exist. Object value_A2_1 = worksheet.getRange("A2").getValue(); Object value_A3_1 = worksheet.getRange("A3").getValue(); worksheet.getRange("A1").setValue(2); //enable calc engine. workbook.setEnableCalculation(true); //Dirty() method will clear the cached value of Range A2:A3. //worksheet.get("A2:A3").Dirty(); //Calculate() method will calculate and cache the result, it will return the cache value directly when get value later. // worksheet.get("A2:A3").Calculate(); //it returns cache value directly, does not calculate again. Object value_A2_2 = worksheet.getRange("A2").getValue(); Object value_A3_2 = worksheet.getRange("A3").getValue(); //save to an excel file workbook.save("DirtyAndCalculation.xlsx");
//create a new workbook var workbook = Workbook() val worksheet = workbook.worksheets.get(0) worksheet.getRange("A1").value = 1 worksheet.getRange("A2").formula = "=A1" worksheet.getRange("A3").formula = "=SUM(A1, A2)" //when get value, calc engine will first calculate and cache the result, then returns the cached result. val value_A2 = worksheet.getRange("A2").value val value_A3 = worksheet.getRange("A3").value //disable calc engine. workbook.enableCalculation = false //Dirty() method will clear the cached value of the workbook. workbook.dirty() //Calculate() will not work, because of workbook.EnablCalculation is false. workbook.calculate() //it returns 0 because of no cache value exist. val value_A2_1 = worksheet.getRange("A2").value val value_A3_1 = worksheet.getRange("A3").value worksheet.getRange("A1").value = 2 //enable calc engine. workbook.enableCalculation = true //Dirty() method will clear the cached value of Range A2:A3. //worksheet.get("A2:A3").Dirty(); //Calculate() method will calculate and cache the result, it will return the cache value directly when get value later. // worksheet.get("A2:A3").Calculate(); //it returns cache value directly, does not calculate again. val value_A2_2 = worksheet.getRange("A2").value val value_A3_2 = worksheet.getRange("A3").value //save to an excel file workbook.save("DirtyAndCalculation.xlsx")