Release 3.6 appears to have a bug that was reportedly fixed in a much earlier release (See bug 12730) I have used the test code given below from the original bug report and while "Sheet 1" is updated to the value 1, on opening the spreadsheet cell A1 on "Sheet 2" has not been updated. This 'refresh' only happens when the cursor is placed in the formula bar field and the enter key pressed. Notes: 1) Tested using Excel 2003. 2) Ran code below and also version using replacements for deprecated methods - result is the same. From original Bug: Avik Sengupta 2003-10-28 18:07:50 EST Works for me.. Excel2002, following code, no need to press F2, excel sheet has empty Sheet1, "=Sheet1!A1" in Sheet2!A1 String filename="12730.xls"; FileInputStream in = new FileInputStream(filename); HSSFWorkbook wb = new HSSFWorkbook(in); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = sheet.getRow(0); if (row==null) row=sheet.createRow(0); HSSFCell cell = row.getCell((short)0); if (cell==null) cell=row.createCell((short)0); cell.setCellValue(1.0); File f = new File("test12730.xls"); FileOutputStream fileOut = new FileOutputStream(f); wb.write(fileOut); fileOut.close();
This is entirely expected. After changing values in cells, you need to re-created the cached formula values See http://poi.apache.org/spreadsheet/eval.html for how to do this