我试图以两种方式导入.xlsx文件:
1)如果我从eclipse运行,如果我导入,我能够成功导入
2)如果我创建了我的产品的.jar文件并在不使用eclipse的情况下作为独立应用程序运行,我收到OutOfMemoryException并因此无法导入
我的文件大小约为3mb,我使用poi 3.9,poi-ooxml-3.9,poi-ooxml-schemas-3.9,dom4j和xmlbeans作为外部罐子。
我甚至尝试过诸如-Xmx1g,-Xms1024M -Xmx1024M等参数。
请帮助我如何从我的独立应用程序导入xlsx文件。
答案 0 :(得分:4)
也许你可以使用streaming API (SXSSF)。
自3.8-beta3以来,POI提供了基于XSSF构建的低内存占用SXSSF API。
SXSSF是一种API兼容的XSSF流媒体扩展,可在以后使用 必须生成非常大的电子表格,并且堆空间是 有限。 SXSSF通过限制访问来实现其低内存占用 滑动窗口内的行,而XSSF提供访问权限 文档中的所有行。窗口中不再有的旧行 无法访问,因为它们被写入磁盘。