java apache poi(第2部分)

java apache poi(第2部分),java,apache-poi,Java,Apache Poi,续 代码 ... while(rowIterator.hasNext()){ List<String> record = new ArrayList<String>(); row = (XSSFRow)rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); while(cellIterator.hasNext()){ ce

  • 代码

    ...
    while(rowIterator.hasNext()){
        List<String> record = new ArrayList<String>();
    
        row = (XSSFRow)rowIterator.next();
    
        Iterator<Cell> cellIterator = row.cellIterator();
    
        while(cellIterator.hasNext()){
            cell = cellIterator.next();
            cell.setCellType(Cell.CELL_TYPE_STRING);
    
            switch(cell.getCellType()){
                case Cell.CELL_TYPE_STRING:
                    record.add(cell.getStringCellValue());
                    break;
                case Cell.CELL_TYPE_NUMERIC:
                    record.add(Double.toString
                    (cell.getNumericCellValue()));
                break;
            }
        }
        readFile();
    }
    
    public void readFile(){
        String ID = record.get(0);
        System.out.println(ID);
    }
    ...
    
    。。。
    while(roweiterator.hasNext()){
    列表记录=新的ArrayList();
    行=(XSSFRow)行迭代器.next();
    迭代器cellIterator=row.cellIterator();
    while(cellIterator.hasNext()){
    cell=cellIterator.next();
    cell.setCellType(cell.cell\u TYPE\u字符串);
    开关(cell.getCellType()){
    case Cell.Cell\u类型\u字符串:
    record.add(cell.getStringCellValue());
    打破
    case Cell.Cell\u类型\u数值:
    record.add(Double.toString
    (cell.getNumericCellValue());
    打破
    }
    }
    readFile();
    }
    公共void readFile(){
    String ID=record.get(0);
    系统输出打印项次(ID);
    }
    ...
    
  • 从上面的代码中,我的输出如下:
    ID
    1
    2
    3

  • 我的预期输出如下:
    1
    2
    3

  • 我的问题是如何从上述代码中删除excel(ID)中的第一行

    • 要跳过第一行:

      while(rowIterator.hasNext()){
      
          row = (XSSFRow)rowIterator.next();
      
          if(row.getRowNum()==0) {
              continue;
          }
      
          List<String> record = new ArrayList<String>();
          Iterator<Cell> cellIterator = row.cellIterator();
          ...
          readFile();
      }
      
      while(roweiterator.hasNext()){
      行=(XSSFRow)行迭代器.next();
      if(row.getRowNum()==0){
      继续;
      }
      列表记录=新的ArrayList();
      迭代器cellIterator=row.cellIterator();
      ...
      readFile();
      }
      
      添加行迭代器.next();上面的While循环在程序中忽略了第一行。很简单。希望这对你有帮助

       **rowIterator.next();**
                  while (rowIterator.hasNext())
                  {
                      Row row = rowIterator.next();
                      //For each row, iterate through all the columns
                      Iterator<Cell> cellIterator = row.cellIterator();
      
                      while (cellIterator.hasNext())
                      {
                          Cell cell = cellIterator.next();
                          //Check the cell type and format accordingly
                          switch (cell.getCellType())
                          {
                              case Cell.CELL_TYPE_NUMERIC:
                                  System.out.print(cell.getNumericCellValue() + "t");
                                  break;
                              case Cell.CELL_TYPE_STRING:
                                  System.out.print(cell.getStringCellValue() + "t");
                                  break;
                          }
                      }
                      System.out.println("");
                  }
                  file.close();
              }
              catch (Exception e)
              {
                  e.printStackTrace();
              }
          }
      
      **roweiterator.next()**
      while(roweiterator.hasNext())
      {
      行=行迭代器。下一步();
      //对于每一行,遍历所有列
      迭代器cellIterator=row.cellIterator();
      while(cellIterator.hasNext())
      {
      Cell=cellIterator.next();
      //检查相应的单元格类型和格式
      开关(cell.getCellType())
      {
      case Cell.Cell\u类型\u数值:
      System.out.print(cell.getNumericCellValue()+“t”);
      打破
      case Cell.Cell\u类型\u字符串:
      System.out.print(cell.getStringCellValue()+“t”);
      打破
      }
      }
      System.out.println(“”);
      }
      file.close();
      }
      捕获(例外e)
      {
      e、 printStackTrace();
      }
      }