package com.zzg.common.config;
|
|
import com.alibaba.excel.context.AnalysisContext;
|
import com.alibaba.excel.exception.ExcelDataConvertException;
|
import com.alibaba.excel.read.listener.ReadListener;
|
|
public class ExcelReadListenerConfig<T> implements ReadListener<T> {
|
|
@Override
|
public void invoke(T data, AnalysisContext context) {
|
// 这里可以处理每一行数据的逻辑
|
System.out.println("读取到一行数据: " + data);
|
}
|
|
@Override
|
public void onException(Exception exception, AnalysisContext context) throws Exception {
|
// 判断是否为数据转换异常
|
if (exception instanceof ExcelDataConvertException) {
|
ExcelDataConvertException ex = (ExcelDataConvertException) exception;
|
int rowIndex = ex.getRowIndex();
|
int columnIndex = ex.getColumnIndex();
|
|
String errorMessage = String.format("数据转换错误: 第%d行,第%d列,错误值:%s",
|
rowIndex + 1, columnIndex + 1, ex.getCellData().toString());
|
|
throw new ExcelDataConvertException(rowIndex + 1, columnIndex + 1, ex.getCellData(), null, errorMessage);
|
} else {
|
throw exception;
|
}
|
}
|
|
@Override
|
public void doAfterAllAnalysed(AnalysisContext context) {
|
// 所有数据解析完成后的处理逻辑
|
System.out.println("所有数据解析完成");
|
}
|
}
|