Java使用esayExcel导入一个excel表有2个sheet页,怎么校验每个sheet页中的每条数据
时间: 2024-02-20 17:56:24 浏览: 79
您可以使用EasyExcel提供的监听器(Listener)来校验每个sheet页中的每条数据。具体步骤如下:
1. 创建一个实现了AnalysisEventListener接口的监听器类,并重写父类中的invoke方法,该方法会在读取到每条数据时被调用。
2. 在监听器中定义一个List集合,用于存储校验失败的数据。
3. 在invoke方法中编写校验逻辑,如果数据校验失败,则将该条数据添加到List集合中。
4. 在读取完每个sheet页后,判断List集合的长度是否为0,如果不为0,则抛出异常或输出警告信息,提示用户处理校验失败的数据。
下面是一个示例代码:
```java
public class ExcelListener extends AnalysisEventListener {
private List<Object> failList = new ArrayList<>();
@Override
public void invoke(Object data, AnalysisContext context) {
// 数据校验逻辑
if (数据校验失败) {
failList.add(data);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 读取完所有sheet页后,处理校验失败的数据
if (failList.size() > 0) {
// 抛出异常或输出警告信息
}
}
}
```
在使用EasyExcel导入Excel表时,只需要将该监听器传递给read方法即可:
```java
ExcelListener listener = new ExcelListener();
EasyExcel.read(file.getInputStream(), clazz, listener).sheet().doRead();
```
阅读全文