/**
* 處理每行數據
*/
@Override
public void invoke(Model model, AnalysisContext analysisContext) {
if (model.getName.length()>20) {
throw new ExcelAnalysisException("姓名過長");
}
}
/**
* 接收invoke中的異常,將異常處理拋出到service
*
* @author jamin
* @date 2020/7/30 10:28
*/
@Override
public void onException(Exception exception, AnalysisContext context) throws Exception {
//獲取行號
Integer index = context.readRowHolder().getRowIndex() + 1;
//invoke中的異常
if (exception instanceof ExcelAnalysisException) {
ExcelAnalysisException excelAnalysisException = (ExcelAnalysisException) exception;
String message = excelAnalysisException.getMessage();
throw new ExcelAnalysisStopException("[數據處理異常--第" + index + "行]----" + message);
}
throw new ExcelAnalysisStopException("[數據解析異常] 請檢查文件");
}
/**
* 導入數據
*
* @author jamin
* @date 2020/7/30 10:37
*/
public MessageVo importData(MultipartFile file) {
Map<String, String> map = new HashMap<>();
map.put("code","0");
try {
EasyExcel.read(file.getInputStream()).autoCloseStream(true).autoTrim(true).headRowNumber(2).head(Model.class).registerReadListener(new ExcelListener()).sheet(0).doRead();
} catch (Exception ex) {
map.put("code","1");
map.put("msg",ex.getCause().getMessage());
}
}