是否可以从同一个xlsx文件中的不同工作表中读取数据?

时间:2019-12-16 15:48:36

标签: java excel apache-poi

我正在使用Apache POI读取xlsx文件。我能够读取Sheet1数据。但是,当尝试读取Sheet2时,我仅获得Sheet1数据。

String strPath = "..\\Test.xlsx";
        File excelFile = new File(strPath);
        FileInputStream fis = new FileInputStream(excelFile);

        // we create an XSSF Workbook object for our XLSX Excel File
        XSSFWorkbook workbook = new XSSFWorkbook(fis);


        Sheet sheet1= workbook.getSheetAt(0);
        Sheet sheet2= workbook.getSheetAt(1);

2 个答案:

答案 0 :(得分:1)

以下是使用apache POI https://www.callicoder.com/java-read-excel-file-apache-poi/

的示例

这是他们在不同工作表上进行迭代的部分

    // 1. You can obtain a sheetIterator and iterate over it
    Iterator<Sheet> sheetIterator = workbook.sheetIterator();
    System.out.println("Retrieving Sheets using Iterator");
    while (sheetIterator.hasNext()) {
        Sheet sheet = sheetIterator.next();
        System.out.println("=> " + sheet.getSheetName());
    }

答案 1 :(得分:1)

调用getSheetAt(i)时,它将返回一个XSSFSheet对象,该对象在Sheet下实现了org.apache.poi.ss.usermodel接口。考虑下面的代码块:

XSSFSheet sheet = workbook.getSheetAt(0);
System.out.println(sheet.getRow(0).getCell(0).getStringCellValue());
sheet = workbook.getSheetAt(1);
System.out.println(sheet.getRow(0).getCell(0).getStringCellValue());

上面的代码应在文档的前两页上打印单元格A1的内容。我自己用一个测试文件完成了工作,