Created attachment 35669 [details] ExcelFileUpdateExample1.java Exception in thread "main" org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Rule M2.4 exception : this error should NEVER happen! If you can provide the triggering file, then please raise a bug at https://bz.apache.org/bugzilla/enter_bug.cgi?product=POI and attach the file that triggers it, thanks! at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.getContentType(ContentTypeManager.java:340) at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.removeContentType(ContentTypeManager.java:253) at org.apache.poi.openxml4j.opc.OPCPackage.removePart(OPCPackage.java:1016) at org.apache.poi.openxml4j.opc.PackagePart.getOutputStream(PackagePart.java:526) at org.apache.poi.xssf.usermodel.XSSFWorkbook.commit(XSSFWorkbook.java:1832) at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:390) at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:242) at test.ExcelFileUpdateExample1.main(ExcelFileUpdateExample1.java:68)
Created attachment 35670 [details] inputfile
Take care about the order you are closing the resources: FileOutputStream outputStream = new FileOutputStream("JavaBooks.xlsx"); workbook.write(outputStream); outputStream.close(); workbook.close(); //inputStream.close(); pkg.close(); Otherwise you are trying to write into a package (document) that has been closed. This is a classical duplicate of https://bz.apache.org/bugzilla/show_bug.cgi?id=60102
Closing as duplicate of bug 60102 as it seems the order of close/write is wrong here. *** This bug has been marked as a duplicate of bug 60102 ***