繁体   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