我正在使用 Apache POI 创建记录并将其保存到Workbook中。我有近5000 条新记录需要写入并保存到工作簿中。但在将 fileOutputStream 写入工作簿时,执行基本上停止并减慢。
我的意思是,在执行这一行时:
workbook.write(fileOutputStream);
Run Code Online (Sandbox Code Playgroud)
它几乎停止处理 5000 多条记录。我验证了在工作簿中写入需要花费近1 小时(!)。
我怎样才能提高性能并克服这个缺点?请建议...
**注意:其余代码是正常的Apache POI相关代码,它们执行得很好,没有问题,因此我没有提及所有代码。只有我被困在上面那行。
我在这里找到了一个讨论: FileOutputStream (Apachhe POI) take too long time to save
但是,这对我没有帮助。我需要保存整个文件。
我理解的另一种解决方案,例如,在迭代 Row 并创建单元格时,不要在循环内部继续声明CellStyle和sheet.autoSizeColumn(colNumber),而是在循环外部仅声明这 2 一次,并仅在循环内部设置值和样式,即,cell.setCellStyle和cell.setCellValue。
每次迭代时都声明上述 2 点,基本上会从根本上降低 POI 的性能。
| 归档时间: |
|
| 查看次数: |
9605 次 |
| 最近记录: |