I constructed a new Workbook using WorkbookFactory.create(new File("path/to/xlsx"))
. However, when I try to edit the File in Excel after starting the application, I get an error message that the file is in use. Do I have to free the file up, and if so, how? (I could not find anything like Workbook.close()
in the api docs) Or do I have to look in other places?
I have no clue where else to look; the application does not cause these issues with csv and for excel files I simply call the converter (xls => csv) which is the only difference.
(I am using POI 3.8)
How to close an instance of a POI workbook in Java:
If you need full control of when the resources get closed, you should create the OPCPackage yourself up front, and pass that into WorkbookFactory. OPCPackage provides the close method you're after. A Workbook will remain open until garbage collection
Your code would look something like:
It seems to work just fine to maintain a handle on the InputStream passed to
WorkbookFactory.create()
, and to simply close the InputStream when you're done with the Workbook. For example:First you need to close the stream which is written to the workBook:
After that u should close the workBook (for no further operations) and dispose the temporary files: