Как получить Макс нет. столбцов, заполненных файлом XLSX с помощью POI?

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

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

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

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

1 ответов


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

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

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