JAVA判断sheet有效行数_Java & 利用POI 读取指定excel的真实行数

Java 使用poi包 读excel文件时,获取指定sheet页中数据行数可以通过调用 sheet.getLastRowNum() ;但这种方法仅限于当前sheet页中没有带格式的空白行时。如果其中一行的数据都为空,但是其原本的格式还在,此时使用getLastRowNum()方法计算出来的行数就不正确(比真实行数大)。

那么如何跳过当前sheet页中没有意义的行正确获取excel的真实行数呢?

可以对当前sheet页中的各行进行过滤,将没有意义的行删掉,然后再调用sheet.getLastRowNum() 即可得到真实行。

代码实现

1、方法getVaildRows()获取指定excel的真实行数

public static int getVaildRows(String path) throws IOException, InvalidFormatException {

FileInputStream excelFileInputStream = new FileInputStream(path);

Workbook wb = WorkbookFactory.create(excelFileInputStream);

Sheet sheet = wb.getSheetAt(0);

CellReference cellReference = new CellReference("A4");

boolean flag = false;

for (int i = cellReference.getRow(); i <= sheet.getLastRowNum(); ) {

Row r = sheet.getRow(i);

if (r == null) {

你可能感兴趣的:(JAVA判断sheet有效行数)