如果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;
}