我知道我们可以通过迭代所有行并在每个行对象上调用getLastCellNumber
来获取最大列数。但是这种方法需要迭代我想要避免的所有行,因为它需要大量时间用于拥有一百万行的文件(这是我期望阅读的那种文件)。
当POI读取excel文件时,它会将工作表维度(第一行编号,最后一行编号,第一个编号,最后一个编号)存储在DimensionsRecord
类的对象中。所以,如果我得到这个对象,我会得到我需要的东西。这些对象可以从Sheet类获得,Sheet类是POI的内部类。我能够提取XLS文件所需的内容,但是我遇到了XLSX文件的障碍。
POI是否也为XLSX维护DimensionsRecord
对象?如果是,有人试图提取它吗?还是有其他一些可以做到这一点?请帮忙!
我也想问一下,我的方法是否正确,即我使用POI的内部类(它完成了我的工作),这是正确的还是我应该完全依赖于暴露的API(太耗费时间)。
答案 0 :(得分:3)
XSSF表格上也有一个维度对象。尝试:
CTSheetDimension dimension = sheet.getCTWorksheet().getDimension();
String sheetDimensions = dimenson.getRef();
我想到的一个问题是,我不确定维度(CTDimensions或DimensionsRecord)是否始终是正确的...