Итерация через несколько листов 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) }