poi/jxl操作excel获取真实行数的问题

在使用jxl框架操作excel的时候,因为需要校验excel的内容,但是根据行数遍历excel的数据的时候,发现获取的行数并不是真正的数据行数,后来根据相关资料发现,在使用getRows()方法获取行数的时候,会获取到带格式的行数以及输入过数据但又清空的行数,所以需要遍历每一行的每一列的单元格内容是否为空。

/**
     * 循环判断--获取excel的真实行数
     */
    private static int realRows(Sheet sheet) {
        int rows = sheet.getRows();
        int columns=sheet.getColumns();
        List<Integer> realRows=new ArrayList<Integer>();
        for (int i = 0; i < rows; i++) {
            boolean isBlankRow=false;
            for (int j = 0; j < columns; j++) {
                if (!StringUtils.isEmpty(sheet.getCell(j, i).getContents())) {
                    isBlankRow=false;
                    break;
                } else {
                    isBlankRow=true;
                }
            }
            if (!isBlankRow) {
				//如果行的每一列不为空,把循环到的行添加到集合
                realRows.add(i);
            }
        }
		//集合的size就是真实数据的行数,去掉表头,就是需要的真实行数
        int row = realRows.size()-1;
        return row;
    }

猜你喜欢

转载自blog.csdn.net/qq_45001053/article/details/126072622