Easyexcel使用-通用导入工具类
Easyexcel使用-通用导入工具类
EasyExcel读取文件,是继承一个com.alibaba.excel.event.AnalysisEventListener类回调里面的invoke 方法来获取每一行的数据。
每读取一行,都会回调一个incoke方法
工具类编写
package com.xxx.xx.util;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
/**
* @Author caicai
* @Description Excel通用解析监听类
*
* @Date 14:18
**/
@Slf4j
public class ReadExcelUtil<T> extends AnalysisEventListener <T>{
public List<T> getAddList() {
return addList;
}
public void setAddList(List<T> addList) {
this.addList = addList;
}
List<T> addList = new ArrayList<>();
/**
* @Author caicai
* @Description
* @Date 15:25
* @Param [o 读取excel 一行的对象结果集, analysisContext]
* @return void
**/
@Override
public void invoke(T o, AnalysisContext analysisContext) {
addList.add(o);
}
/**
* @Author caicai
* @Description 读取之后的回调操作操作
* @Date 15:25
* @Param [analysisContext]
* @return void
**/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
通用工具,我将对象封装一个泛型,来接受通用对象
此外还需要定义一个导入的表头类
表头类 定义
@Data
public class importExcelModel{
//index 标识第几列的数据
@ExcelProperty(value = "姓名",index = 0)
private String name;
@ExcelProperty(value = "年龄",index = 0)
private String age;
}
调用编写
@PostMapping("/import")
public String batchInsert(@RequestParam("file") MultipartFile file,
) throws Exception {
ReadExcelUtil<importExcelModel> readExcel = new ReadExcelUtil<importExcelModel>();
EasyExcel.read(file.getInputStream(), importExcelModel.class,readExcel )
.sheet(0)
.doRead();
//获取读取的excel对象
List<importExcelModel> list = readExcel .getAddList();
return "获取数据成功!" ;
}
开开心心,上班!
快快乐乐,游玩!
及时行乐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律