java - Apache-POI 生成 8kb 的小工作簿,需要几分钟才能完成

标签 java excel apache-poi

我正在使用 Apache-POI 创建 xlsx 工作簿。创建一个 3 列 350 行的小型工作簿需要 15 分钟以上的时间。我开始精简代码(删除表格格式等),但我意识到工作簿的生成本身需要几分钟的时间。这一行代码需要几分钟才能完成:

Workbook wb = new XSSFWorkbook();

关于我可能做错了什么,或者可能导致后台出现巨大延迟的任何提示?

编辑:更多上下文

System.out.println("Generating Excel file...");

System.out.println("  Creating workbook...");
Workbook wb = new XSSFWorkbook();
System.out.println("  Creating sheet...");
XSSFSheet sheet = (XSSFSheet) wb.createSheet("DS Datasources");
System.out.println("  Setting auto-filter...");
sheet.setAutoFilter(CellRangeAddress.valueOf("A1:C1"));

在控制台中,我看到“正在创建工作簿...”,然后我必须等待几分钟才能看到“正在创建工作表...”(这也需要一分钟多的时间)。这意味着单行代码占用了所有时间,对吗?

最佳答案

我发现,在某些情况下,当项目中的jar文件在不同的java级别下编译时(示例1 java 1.5 jar在java 1.8项目中),JIT编译器会举手并以纯解释模式运行。我的解决方案是获取受影响的 jar 的源代码并从源代码构建。

关于java - Apache-POI 生成 8kb 的小工作簿,需要几分钟才能完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327615/

相关文章:

c# - 在 C# 中创建自定义 ODBC/OLE 驱动程序

apache-poi - 使用 POI 在 xlsx 文件中嵌入文档

excel - Do While,循环在初始循环后找不到文件

excel - 使用循环验证用户窗体以检查空控件

java - 使用 <applet> 标记的 Java Applet 中出现 ClassNotFoundException 错误

java - 公钥与 PublicKey.getEncoded() 相同

java - 如何从 Excel 中的数组列表中收集引用

java - 在每个代码运行后将数据附加到已使用 java 创建的 excel 中的下两个连续列

java - 在eclipse中创建jsp文件时遇到问题

java - 向客户解释 .NET 或 Java