Apache POI(excel)执行getSheet()vs createSheet()

时间:2018-05-18 19:46:21

标签: java excel performance apache-poi

构造非常简单,我有输入对象列表(比如100k记录),并将此列表放入excel表。 我注意到,如果我使用createSheet(),填充工作表只需几秒钟。 如果我使用getSheet(例如我使用模板作为我的报告),并且填充报告需要几分钟。对此有何解释?

public void populateSheet(List<Objects> input) {
        XSSFSheet rowsSheet = getWorkbook().createSheet("SheetName");
        int l = 1;
        for (Objects row : input) {
             .....
        }

public void populateSheet(List<Objects> input) {
        XSSFSheet rowsSheet = getWorkbook().getSheet("SheetName");
        int l = 1;
        for (Objects row : input) {
             .....
        }

1 个答案:

答案 0 :(得分:2)

根据我的经验,excel文件可能包含很多隐藏内容,即使您在打开文件时什么都看不到。 我只是尝试重新创建工作表的新版本,并通过复制/粘贴重新创建标题。然后,测试程序的速度。