Apache Poi 性能问题打开打包在罐子内的电子表格



我正在尝试使用Apache Poi 3.14打开一个非常小的电子表格。电子表格是 XLSX,有 4 个工作表,仅包含带边框的阴影列标题 (15kB)

我正在使用以下内容来访问位于我的 java 项目内文件夹中的电子表格(导出时打包在 jar 内)。

     OPCPackage p = OPCPackage.open(getClass().getResourceAsStream(EXPORT_TEMPLATE));
     XSSFWorkbook wb =  new XSSFWorkbook(p);

当我直接从 Eclipse IDE 运行此工作簿时,工作簿几乎会立即打开,但是当我导出应用程序并运行 jar 时,打开工作簿需要 15 秒。

在添加代码以从头开始创建工作表之前,我正在尝试弄清楚如何提高此性能。

企业反恶意软件应用程序正在影响工作簿创建过程!

听起来在

IDE 内部和应用程序中有不同的类加载器实现在工作,而在 Eclipse 之外,随机访问的速度会减慢很多。

我会通过将资源从 jar 文件中完全提取到 byte[] 中来测试这一点,例如通过 Commons-IO,然后才构造它:

byte[] bytes = IOUtils.toByteArray(getClass().getResourceAsStream(EXPORT_TEMPLATE))
XSSFWorkbook wb =  new XSSFWorkbook(new ByteArrayInputStream(bytes));

最新更新