https://bz.apache.org/bugzilla/show_bug.cgi?id=59252
Bug ID: 59252 Summary: Close workbook does not save file Product: POI Version: 3.14-FINAL Hardware: PC Status: NEW Severity: major Priority: P2 Component: XSSF Assignee: dev@poi.apache.org Reporter: tipar...@gmail.com As speciffied in OPCPackage API: https://poi.apache.org/apidocs/org/apache/poi/openxml4j/opc/OPCPackage.html#close%28%29 close should save an Excel file if writable, but it doesn't. Instead, you need to save to a second file, and then it saves also the original one. It happens the same (at least) if created with WorkbookFactory.create or OPCPackage.open with Write permissions. I wrote a basic test: //Create excel file File file= new File("C:\\file2.xlsx"); Workbook wbx= new XSSFWorkbook(); wbx.createSheet(); Sheet s= wbx.getSheetAt(0); Row r= s.createRow(0); Cell c= r.createCell(0); c.setCellType(Cell.CELL_TYPE_STRING); c.setCellValue("Wrong"); OutputStream os= new FileOutputStream(file); wbx.write(os); wbx.close(); //Update Excel file wbx= WorkbookFactory.create(file, null, false); /*OR OPCPackage pkg = OPCPackage.open(file,PackageAccess.READ_WRITE); wbx= new XSSFWorkbook(pkg); */ s= wbx.getSheetAt(0); r= s.getRow(0); c= r.getCell(0); c.setCellValue("Right"); //Without this, now it doesn't save /* File trash= File.createTempFile("basura", ".tmp"); FileOutputStream trahsOs= new FileOutputStream(trash); wbx.write(trahsOs); trahsOs.close(); trash.delete(); */ //This should save the file wbx.close(); //Reopen and check wbx= WorkbookFactory.create(file, null, false); s= wbx.getSheetAt(0); r= s.getRow(0); c= r.getCell(0); String value= c.getStringCellValue(); wbx.close(); assert("Right".equals(value)); -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org