如果Excel中在有数据的行下面有回车,getRows()也会返回该行数,判断方法为如果该行每一列都是空值就过滤掉

/**
     * 过滤掉空行
     * @param sheet
     * @return
     */
    private static int getRightRows(Sheet sheet) {
        int rsCols = sheet.getColumns(); // 列数
        int rsRows = sheet.getRows(); // 行数
        int nullCellNum;
        int afterRows = rsRows;
        for (int i = 1; i < rsRows; i++) { // 统计行中为空的单元格数
            nullCellNum = 0;
            for (int j = 0; j < rsCols; j++) {
                String val = sheet.getCell(j, i).getContents();
                val = StringUtils.trimToEmpty(val);
                if (StringUtils.isBlank(val))
                    nullCellNum++;
            }
            if (nullCellNum >= rsCols) { // 如果nullCellNum大于或等于总的列数
                afterRows--; // 行数减一
            }
        }
        return afterRows;
    }

本文转载:CSDN博客