有 Java 编程相关的问题?

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

java如何从特定行读取excel文件?

我想在Java中读取excel工作表第n行之后的特定行。我不想检查单元格中是否有值。我只想跳过一些起始行,比如说n,然后从n+1行开始读取

我将如何实现这个目标

    FileInputStream fileInputStream = new FileInputStream(fileName);
    POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
        HSSFSheet hssfSheet = workBook.getSheetAt(0);
        Iterator<Row> rowIterator = hssfSheet.rowIterator();
        boolean headerRow = true;
        while (rowIterator.hasNext()) {
            if (headerRow == false) {
                HSSFRow hssfRow = (HSSFRow) rowIterator.next()
                Iterator<Cell> iterator = hssfRow.cellIterator();
                List cellTempList = new ArrayList();
                while (iterator.hasNext()) {
                HSSFCell hssfCell = (HSSFCell) iterator.next();
        if(hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC)
        {DecimalFormat df = new DecimalFormat("#");
            String cellValue=df.format(hssfCell.getNumericCellValue());
            cellTempList.add(cellValue.toString());
        }
     else if(hssfCell.getCellType() == hssfCell.CELL_TYPE_STRING)
     { cellTempList.add(hssfCell.toString());
     }
    }
cellDataList.add(cellTempList);

共 (2) 个答案

  1. # 1 楼答案

    像这样的

    for (int rn=startRowNo; rn<=endRowNo; rn++) 
         {
          HSSFRow row = hssfSheet.getRow(rn);
          //do your processing here
         }
    

    你也可以使用

    sheet.getLastRowNum();以获取最后一行

  2. # 2 楼答案

    public void skipNthRowMethod( int skipRowNumbers ) {
        int rowNum = 0;
    
        if ( skipRowNumbers > 0 ) {
            while ( rowIterator.hasNext() ) {
                if( rowNum <= skipRowNumbers ) {
                    rowNum++;
                    continue;
                }
    
                rowNum++; // anything for future usage
            }
        }
    }
    

    使用上述方法将帮助您跳过行号

    如果您需要更多帮助,请检查并告诉我