// 获得总记录数(行数)
int lastRowNum = sheet.getLastRowNum();
int rowNum=sheet.getPhysicalNumberOfRows();
// 获得总字段数(列数)
int columnCount = sheet.getRow(0).getPhysicalNumberOfCells();
java - poi - excel导入用 getLastRowNum() 获取行数不正确,拿到的行数总是比实际的多,但是打开excel表格看却又没有那么多行数据
原因:我们对不在导入数据单元格范围以外的单元格也设置了格式:比如调整了行高及列宽,边框单元格属性等,你看着没有任何数据,但是实际上这些在数据范围外的单元格已经不是默认的格式了,所以获取的行数或列数将不正确。(或者说之前有数据,后来把这一行数据删掉了,但是这一行表格的样式还在,只是你看不到罢了,你以为是没有的。“泪奔啊!!!!!”)
解决方法:
1.选中有效数据区域外的可疑单元格–右键删除–保存即可。
2.或者说,在导入之前做一个判断,只要关键的ID列没有那就表示这一行都是空数据,用continue; 跳出即可。
得到一个经验
“在Excel表格中如果不在有效数据范围内的行列单元格千万不要去乱动修改,还有,遇到问题多查资料,千万不要自己盲目的找BUG(来自一个程序员菜鸟的忠告)”