数据:excel一共1004条数据:包含1行表头+1000有效数据+1个空白行+2行带有格式的空白行
目的:将excel表中的1000条有效数据批量导入(做出限制最多只能批量导入1000行)
//获得第一个表单
Sheet sheet = wb.getSheetAt(0);
//获取到excel行数 ---> 1003(从0开始)
int num = sheet.getLastRowNum();
//删除的空行(包含空白行和带有格式的空行)
int bk = 0;
//记录空白行的集合
List<Integer> nums = Lists.newArrayList();
for (int i = 1; i <= num; i++) {
Row row = sheet.getRow(i);
boolean flag = false;
//带有格式的空白行
if (row != null) {
for (Cell cell : row) {
//判断该单元格是否为空
if (StringUtils.isEmpty(cell.toString())) {
flag = true;
break;
}
}
if (flag) {
nums.add(i);
bk++;
}
//空白行
} else {
nums.add(i);
bk++;
}
}
//删除无效数据行(空白行,带格式的空白行)
for (Integer n : nums) {
if (sheet.getRow(n) != null) {
sheet.removeRow(sheet.getRow(n));
}
}
//限制批量导入的上限1000行
if (num - bk > 1000) {
throw new PlatformException("数据量超过1000行");
}
结果:删除掉无用的空白行,1000条有效数据可以正常导入