Итерация через несколько листов excel в java
Я очень новичок в java. Я создаю pList из excel. Мой файл Excel содержит несколько листов. Я хочу перебрать все листы файла excel. Как это? пожалуйста помочь.
3 ответов
public static void main( String [] args ) {
try {
InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
POIFSFileSystem fs = new POIFSFileSystem( input );
HSSFWorkbook wb = new HSSFWorkbook(fs);
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
HSSFSheet sheet = wb.getSheetAt(i);
// Do your stuff
}
} catch ( IOException ex ) {
ex.printStackTrace();
}
}
С документация по poi apache мы видим, что есть также итератор, который, на мой взгляд, является более чистым решением:
Iterator<Sheet> sheetIterator = workbook.iterator();
while (sheetIterator.hasNext()) {
Sheet sheet = sheetIterator.next();
}
В зависимости от типа используемой книги (HSSF или XSSF) может потребоваться выполнить дополнительную операцию приведения:
-
HSSF: чистая реализация Java проекта POI формата файла Excel ' 97 (-2007).
HSSFSheet sheet = (HSSFSheet) sheetIterator.next();
-
XSSF: чистая реализация Java проекта POI Excel 2007 OOXML (.xlsx) формат файла.
XSSFSheet sheet = (XSSFSheet) sheetIterator.next();
Java:
Workbook workbook = WorkbookFactory.create(file);
Iterator<Sheet> sheetIterator;
sheetIterator = workbook.sheetIterator();
while(sheetIterator.hasNext()){
Sheet sheet = sheetIterator.next();
out.println(sheet.getSheetName());
}
Scala:
var iterator = workbook.sheetIterator();
while(iterator.hasNext){
var sheet = iterator.next
println(sheet)
}