如何去通过Apache POI工作簿的工作表?

我是一个真正的newb programer试图做一个小的Java程序,编辑电子表格的朋友使用Apache Poi。 目前我通过使用这个代码的Excel文件:

Sheet paxgs = rs1.getSheetAt(0); for (Row row : paxgs) { Cell secCell = row.getCell(1); Cell firstCell = row.getCell(0); if (firstCell!=null && firstCell.getCellType()==firstCell.CELL_TYPE_STRING) } 

问题是,我不知道excel文件将具有的工作表的确切数量。 我试过了 :

 Workbook rs1 = WorkbookFactory.create(new FileInputStream(filename)); for (Sheet sheet : rs1) 

但它没有工作,所以我想知道是否有任何方式通过工作簿的所有工作表。

Workbook不会像Workbook Iterable<Sheet>一样实现Iterable<Sheet>实现Iterable<Row> ,所以您不能使用“增强”for循环。 但是你可以用一个传统的for循环来自己遍历Sheet对象。 使用getNumberOfSheets()查找页数, getSheetAt检索单个Sheet对象。

 for (int i = 0; i < workbook.getNumberOfSheets(); i++) { Sheet sheet = workbook.getSheetAt(i); // Process your sheet here. } 

该工作簿包含一个types为java.util.List的受保护字段“_sheets”,因此: –

  rs1._sheets.size(); 

应该得到你的张数。 你也应该能够遍历这个列表。