有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ApachePOI Excel文件包含5张工作表如何使用java一次读取所有数据

我正在用这个。。。代码,但它将读取索引

        FileInputStream fis = new FileInputStream(new File("PILOT.xlsx"));
              XSSFWorkbook workbook = new XSSFWorkbook(fis);
              XSSFSheet spreadsheet = workbook.getSheetAt(0);
              Iterator < Row > rowIterator = spreadsheet.iterator();
              while (rowIterator.hasNext()) 
              {
                 row = (XSSFRow) rowIterator.next();
                 Iterator < Cell > cellIterator = row.cellIterator();
                 while ( cellIterator.hasNext()) 
                 {
                    Cell cell = cellIterator.next();
                    switch (cell.getCellType()) 
                    {
                       case Cell.CELL_TYPE_NUMERIC:

                           if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC){
                                if (DateUtil.isCellDateFormatted(cell)) {
                                    System.out.println(cell.getDateCellValue());
                                } else {
                                    System.out.println(cell.getNumericCellValue());
                                }
                        }
                    //   System.out.print(cell.getNumericCellValue() + " \t\t " );
                       break;
                       case Cell.CELL_TYPE_STRING:
                       System.out.print(
                       cell.getStringCellValue() + " \t\t " );
                       break;
                    }
                 }
                 System.out.println();
              }
              fis.close();
           }

给出一次读取所有数据的最短方法。。。。。我正在使用maven POI依赖项。。。。。帮帮我


共 (1) 个答案

  1. # 1 楼答案

    您说工作簿有5张工作表,但您只阅读代码中的一张工作表。因此,为了从工作簿中的所有工作表中读取数据,您需要将代码包装在一个循环中。因此,您目前拥有:

    XSSFSheet spreadsheet = workbook.getSheetAt(0);
    

    将其替换为下面的循环,并将剩余代码放入循环中

    for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
            XSSFSheet spreadsheet = workbook.getSheetAt(i);
            // Your remaining code here
        }
    

    这将使您能够从所有5张工作表中提取数据