如何获得最大号码使用POI填充XLSX文件的列?

时间:2011-04-25 13:05:16

标签: apache-poi xls xlsx xssf

我知道我们可以通过迭代所有行并在每个行对象上调用getLastCellNumber来获取最大列数。但是这种方法需要迭代我想要避免的所有行,因为它需要大量时间用于拥有一百万行的文件(这是我期望阅读的那种文件)。

当POI读取excel文件时,它会将工作表维度(第一行编号,最后一行编号,第一个编号,最后一个编号)存储在DimensionsRecord类的对象中。所以,如果我得到这个对象,我会得到我需要的东西。这些对象可以从Sheet类获得,Sheet类是POI的内部类。我能够提取XLS文件所需的内容,但是我遇到了XLSX文件的障碍。

POI是否也为XLSX维护DimensionsRecord对象?如果是,有人试图提取它吗?还是有其他一些可以做到这一点?请帮忙!

我也想问一下,我的方法是否正确,即我使用POI的内部类(它完成了我的工作),这是正确的还是我应该完全依赖于暴露的API(太耗费时间)。

1 个答案:

答案 0 :(得分:3)

XSSF表格上也有一个维度对象。尝试:

CTSheetDimension dimension = sheet.getCTWorksheet().getDimension();
String sheetDimensions = dimenson.getRef();

我想到的一个问题是,我不确定维度(CTDimensions或DimensionsRecord)是否始终是正确的...