我正在使用 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/