有很多時候會出現空的數據導致行數被識別多的情況
// 獲取Excel表的真實行數 int getExcelRealRow(Sheet sheet) { boolean flag = false; for (int i = 1; i <= sheet.getLastRowNum(); ) { Row r = sheet.getRow(i); if (r == null) { // 如果是空行(即沒有任何數據、格式),直接把它以下的數據往上移動 sheet.shiftRows(i + 1, sheet.getLastRowNum(), -1); continue; } flag = false; for (Cell c : r) { if (c.getCellType() != Cell.CELL_TYPE_BLANK) { flag = true; break; } } if (flag) { i++; continue; } else { // 如果是空白行(即可能沒有數據,但是有一定格式) if (i == sheet.getLastRowNum())// 如果到了最后一行,直接將那一行remove掉 sheet.removeRow(r); else//如果還沒到最后一行,則數據往上移一行 sheet.shiftRows(i + 1, sheet.getLastRowNum(), -1); } } return sheet.getLastRowNum(); }