在使用POI操作excel时,原先excel中有11行数据,修改为只剩2行数据时,通过 getLastRowNum() 获取行数仍然是11条。
1、原因是
excel中只要操作过单元格就会认为样式发生改变,即使单元格为空,也会照旧读取数据。
2、解决方法
为了避免对空行数据做不必要的操作,用以下方法判断是否是空行:
// 判断是否是空行
public static boolean isRowEmpty(Row row) {
for(int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if(cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
return false;
} else {
break;
}
}
return true;
}
循环中,是空行直接跳过
// 如果是空行直接执行下一次
if(isRowEmpty(row)) {
continue;
}