Как получить макс нет. столбцов, заполненных в файле XLSX с помощью POI? - PullRequest
7 голосов
/ 25 апреля 2011

Я знаю, что мы можем получить максимальное количество столбцов, перебирая все строки и вызывая getLastCellNumber для каждого объекта строки ... но этот подход требует перебора всех строк, которых я хочу избежать, так как это займет многовремя для файлов с миллионами строк (это те файлы, которые я ожидаю прочитать).

Когда POI читает файл Excel, он сохраняет размеры листа (номер первой строки, номер последней строки, номер первого столбца, номер последнего столбца) в объекте класса DimensionsRecord.Поэтому, если я получу этот объект, я получу то, что мне нужно.Эти объекты могут быть получены из класса Sheet, который является внутренним классом POI.Мне удалось извлечь то, что мне нужно для файлов XLS, но я столкнулся с препятствиями для файлов XLSX.

Поддерживает ли POI также объект DimensionsRecord для XLSX ?, если да, кто-нибудь пытался его извлечь?Или есть какой-то другой способ, которым это может быть сделано ??пожалуйста помоги!

Также я хотел спросить, является ли мой подход правильным или нет, то есть я использую внутренние классы POI (он выполняет свою работу), это правильно, или я должен полагаться исключительно на открытые API (слишком много времени).

1 Ответ

3 голосов
/ 26 апреля 2011

На XSSF Sheets также есть объект измерения.Попробуйте:

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

Единственная проблема, которая приходит на ум, это то, что я не уверен, требуется ли, чтобы измерение (CTDimensions или DimensionsRecord) всегда было правильным ...

...