这是因为poi在读取Excel文件时,对于每个单元格,它不仅会检查其值是否为空,还会检查单元格是否为“真正”的空单元格。如果一个单元格的值是空字符串或null,但单元格中仍然包含格式、边框、颜色等其他属性,那么这个单元格仍然会被识别为非空单元格。
如果你想要过滤掉被删除掉内容的空行,你可以在读取Excel文件之后,对每一行进行遍历,判断该行所有单元格是否都为空。如果存在非空单元格,则将该行过滤掉。如果所有单元格都为空,则可以保留该行或者根据需要进行其他处理。
以下是一个示例代码片段,用于读取Excel文件并过滤掉被删除掉内容的空行:
java
// 创建Workbook对象
Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
// 获取Sheet对象
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 判断该行所有单元格是否都为空
boolean isBlankRow = true;
for (Cell cell : row) {
if (cell.getCellType() != CellType.BLANK) {
isBlankRow = false;
break;
}
}
// 如果该行所有单元格都为空,则过滤掉该行
if (isBlankRow) {
continue;
}
// 如果需要进行其他处理,可以在这里进行操作
// ...
}