在java中通过多张excel迭代

我对java很新。 我从Excel创buildpList。 我的Excel文件包含多个工作表。 我想遍历Excel文件的所有表单。 如何对此? 请帮忙。

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(); } } 

从apache poi文档中,我们看到还有一个迭代器可用,这在我看来是一个更清晰的解决scheme:

 Iterator<Sheet> sheetIterator = workbook.iterator(); while (sheetIterator.hasNext()) { Sheet sheet = sheetIterator.next(); } 

根据您使用的工作簿types(HSSF或XSSF),您可能需要执行额外的投射操作:

  • HSSF:POI Project的Excel 97(-2007)文件格式的纯Java实现。

     HSSFSheet sheet = (HSSFSheet) sheetIterator.next(); 
  • XSSF:POI Project的Excel 2007 OOXML(.xlsx)文件格式的纯Java实现。

     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()); } 

斯卡拉:

var iterator = workbook.sheetIterator(); while(iterator.hasNext){ var sheet = iterator.next println(sheet) }