在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) }