Apache POI创build了以后无法打开的xlsx文件。 检测到邮政炸弹
当我使用Apache POI创buildxlsx文件(当文件很大时),当MS Excel或LibreOffice Calc打开它时,它创build的这个文件不能被相同的Apache POI打开。
当我尝试用Apache POI打开这个工作簿时,就是这么说的
检测到邮政炸弹
我可以打开它只有当我调用ZipSecureFile.setMinInflateRatio(0)
或重新保存在LibreOffice(MS Excel在这里没有帮助)。
如何解决这个问题? 为什么POI创build无法打开的文件?
只需按照错误消息的build议进行操作,并通过不同的方式设置限制
ZipSecureFile.setMinInflateRatio(0)
您似乎有一个相当特殊的用例,它生成的文件类似于某些文件,恶意用户可能会使用这些文件来使服务器崩溃,耗尽CPU或耗尽内存。 为了避免这种情况,Apache POI具有此限制,但可以根据需要进行不同的设置。 因此,如果文件不是来自不可信用户,则可以轻松调整这些限制以避免出现错误消息。
Excel或LibreOffice可能比Apache POI更优化文件内容,从而产生一个没有达到这些限制的文件。
- 在使用apache POI从xlsx文件读取数据时出现的线程“main”org.apache.poi.POIXMLExceptionexception中的exception
- 如何清理使用apache poi生成的excel文件中的单元格之间的差距
- 如何使用Apache POI输出到特定的列和工作表?
- NPOI写入腐败文件 – 裸和号
- 在尝试从Java(POI API)设置excel中的cellvalue时,单元格值不会复制到正确的行中
- 是否有可能使用java程序从数据透视表中读取?
- 如何将单元格的背景颜色设置为任何RGB值?
- 在Excel文件中创buildExcel图表
- 在Java中读取xlsxcheckbox值