问题与描述here
相同但由于那里找不到解决办法,试图在这里重新开启这个话题? 简而言之,我使用的是Apache POI 3.8。我有一个带有宏的 *。xlsm 文件。我正在尝试在部署应用程序时打开此文件,但是在 XSSFWorkbook "构造函数,表示" ZIP条目大小太大"。 奇怪的是,我能够在我的IDEA中本地执行该操作而没有任何问题。 如果有人愿意分享正在发生的事情的想法,如果有任何过去有这样的问题,我将不胜感激。
答案 0 :(得分:2)
通过相关代码浏览一下,我的猜测是它取决于文件的位置。可能如果它是一个文件,那么poi处理它的方式与它是某些其他来源(例如在内存中)的处理方式不同?
如果是这种情况,那么您可以通过将文件写入临时文件然后将其加载到poi来解决问题。具体来说,如果您从文件创建XSSFWorkbook,则不应该遇到此问题。根据javadoc,你这样做:
OPCPackage pkg = OPCPackage.open(path);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
// work with the wb object
......
pkg.close(); // gracefully closes the underlying zip file
答案 1 :(得分:2)
原因是Maven在构建应用程序存档时破坏了模板文件。