ExcelImportUtil.importExcel 把空行解析成对象,怎么忽略空行
时间: 2024-05-04 13:21:55 浏览: 200
ImportExcelUtil.java文件支持所有Excel文件解析导入的方法
5星 · 资源好评率100%
可以在导入 Excel 时判断每行数据是否为空,若为空则跳过该行数据的解析。可以采用以下方法:
1. 在 ExcelImportUtil 中添加一个参数,表示是否忽略空行。
2. 在 importExcel 方法中,在循环解析每行数据前,判断该行是否为空,如果是空行且忽略空行的参数为 true,则跳过该行数据的解析。
3. 判断该行是否为空的方法可以使用 Apache POI 提供的 Row#getPhysicalNumberOfCells() 方法,该方法返回该行实际存在的单元格数量,当单元格数量为 0 时,即为空行。
以下是示例代码:
```java
public static <T> List<T> importExcel(InputStream inputStream, Class<T> clazz, boolean ignoreBlankRow) throws Exception {
// 创建工作簿
Workbook workbook = WorkbookFactory.create(inputStream);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 获取表头行
Row headerRow = sheet.getRow(0);
List<String> headerList = getHeaderList(headerRow);
// 遍历数据行
List<T> dataList = new ArrayList<>();
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
// 判断是否为空行
if (ignoreBlankRow && row.getPhysicalNumberOfCells() == 0) {
continue;
}
// 解析数据行
T data = parseData(row, headerList, clazz);
dataList.add(data);
}
return dataList;
}
```
阅读全文