Bug 49169 - Updates to cells on one worksheet are not reflected in references in other sheets
Summary: Updates to cells on one worksheet are not reflected in references in other sh...
Status: RESOLVED INVALID
Alias: None
Product: POI
Classification: Unclassified
Component: HSSF (show other bugs)
Version: unspecified
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-22 06:22 UTC by William.Plummer
Modified: 2010-04-22 06:44 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William.Plummer 2010-04-22 06:22:08 UTC
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();
Comment 1 Nick Burch 2010-04-22 06:44:52 UTC
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