2016-06-30 64 views
0

是否有可能讓Apache POI創建並打開一個新的Excel工作簿文件,但不一定會將保存爲作爲文件?我試圖將其作爲短期文件公開,就好像它是從互聯網上下載的,以便可以保存,如果需要的話,但另有刪除。創建一個新的POI工作簿但不保存

+0

爲什麼不僅僅存儲POI工作簿所具有的數據,並且如果用戶選擇保存,那麼只需生成實際工作簿? –

+0

@CeilingGecko我想從以前的Excel數據創建一個報告軟件。如果用戶在創建數據時意外地使用了錯誤的參數,那麼它就像點擊兩次按鈕一樣簡單,而不必手動刪除它。 – JStef

回答

3

否Excel打開文件。即使您打開的「從互聯網下載」的文件也會臨時保存到您指定的下載目錄或用戶的臨時目錄中。

您可以將工作簿保存在用戶的臨時目錄中(請參閱Files.createTemporaryFile()),並且只有在用戶決定永久保留工作簿時纔可以移動或複製工作簿。如果他們不想保留它,您可以立即使用File.delete()或當您的應用程序以File.deleteOnExit()退出時立即將其刪除。

請注意,在Windows上,File.delete()File.deleteOnExit()只會在您嘗試刪除它們之前確保您的應用程序關閉這些文件及其關聯的流時才能一致地工作。 try-with-resources statement對此非常有幫助。

+0

謝謝!至於'File.deleteOnExit()',程序如何知道'write()'後Excel文件是否已經關閉? – JStef

+0

它不會。操作系統會知道該文件已打開並且會阻止刪除的發生。只要確保您在給定文件上創建的任何流都已正確關閉。如果您使用我鏈接的try-with-resources語句,那麼可以讓JRE爲您做這件事。 –

相關問題