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

时间:2017-04-10 15:45:45

标签: java excel apache-poi

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

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"));

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

1 个答案:

答案 0 :(得分:1)

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