簡體   English   中英

Apache POI-如何在Grails應用程序中提供要下載的Excel文件

[英]Apache POI - How to offer excel file for download in a Grails application

我在解決如何打開現有excel文件,向其中添加數據,將該文件輸出到瀏覽器,然后關閉工作簿而不保存任何更改的問題。

以前,我使用它來創建工作簿:

workbook = new XSSFWorkbook(new FileInputStream(file))

並將其輸出到瀏覽器:

workbook.write(response.outputStream)

但是我遇到了內存問題,因此我從FileInputStream更改為WorkbookFactory:

workbook = WorkbookFactory.create(file)

但是,這似乎可以修改文件(盡管實際上並沒有編輯任何內容)。 我嘗試根據此SO帖子使用帶有readonly標志的重載函數:

workbook = WorkbookFactory.create(file,null,true)

但是我不能再使用workbook.write()了,因為它抱怨文件是只讀的。 誰能向我解釋這樣做的正確程序? 使用workbookFactory似乎可以解決我的內存問題,但是我不喜歡它以某種方式修改了excel文件。

使用WorkbookFactory您只能打開一個現有文件,並且使用該文件進行的任何處理都會導致對其進行修改。 您的問題是您不想修改文件,因此我為您提出了一個解決方案:制作原始文件的副本=>處理副本(做您想做的任何事情)=>完成后刪除此副本你的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM