通过getPhysicalNumberOfRows()获得的实际行数,不一定有数据的行数。
比如某个单元格只设置了非“常规”的格式,它也会被POI认为是实际行。
不过POI里似乎没有没有这样的方法,getNextPhysicalRow()。
所以只好从getFirstRowNum()到getLastRowNum()遍历,如果null==currentRow,验证下一行。
- try {
- Workbook hwb = new HSSFWorkbook(
- new FileInputStream("C:\\1.xls"));
- Sheet sheet = hwb.getSheetAt(0);
- //int rowCount = sheet.getPhysicalNumberOfRows();
- int begin = sheet.getFirstRowNum();
- int end = sheet.getLastRowNum();
- for (int i = begin; i <= end; i++) {
- if (null == sheet.getRow(i)) {
- continue;
- }
- // do something
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }