如何使用SheetContentsHandler获取总行

时间:2018-12-05 09:23:39

标签: java excel apache-poi

我想问的问题与该用户问here的问题完全相同。但是,那里没有公认的答案,也没有我可以尝试的答案。我已经阅读了文档here,但似乎不知道在不循环的情况下获取工作表的总行。

在这种情况下,我和他问:“例如,我正在处理1007条记录。我已定义批大小为1000,并在“ endrow”方法中将数据对象添加到列表中,然后将列表的大小检查为1000并清除1000条记录中的列表。但是,我无法处理最后7条记录,因为我不知道工作表的最后一条记录。”也许,我想在endRow方法内使用if语句,如果我知道如何获取总行,就可以这样:

public void endRow(int i) {
    if (i > 0) {
        result.add(myObject);
        if (i % 1000 == 0) {
            // execute batch insert
            repo.save(result);
            result.removeAll(result);
            repo.flush();
        }
        if (i % 1000 != 0 && i == lastRow) {
            // save remaining data
            // but I did not know how to get the lastRow
            repo.save(result);
            repo.removeAll(result);
            repo.flush();
        }
   }
}

添加

Here是我实际上正在做的。但是,是的,在处理工作表之前或不使用for循环的情况下,我无法获得行的大小。

0 个答案:

没有答案