EasyExcel导入导出

Spring Boot + Mybatis-Plus + EasyExcel 导入导出

导入

一 常用注解

@ExcelProperty 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。

@ExcelIgnore 默认所有字段都会和excel去匹配,加了这个注解会忽略该字段

@DateTimeFormat 日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat

@NumberFormat 数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat

@ExcelIgnoreUnannotated默认不加ExcelProperty 的注解的都会参与读写,加了不会参与

二 依赖

<!-- easyexcel 主要依赖 -->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>easyexcel</artifactId>
   <version>2.1.4</version>
</dependency>

三 监听

/**
 * EasyExcel 导入监听
 */
public class ExcelListener extends AnalysisEventListener<XxxDto> {
   
  	XxxService xxxService;
    //可以通过实例获取该值
    private List<XxxDto> datas = new ArrayList<XxxDto>();
  	//监听器中不能直接使用@Autowired和@Resource注入,要使用构造方法
    public ExcelListener(XxxService xxxService) {
   
			this.xxxService = xxxService;
		}
 
    @Override//解析数据会调用这个方法,来存储数据
    public void invoke(XxxDto xxxDto, AnalysisContext analysisContext) {
   
        datas.add(xxDto);//1.数据存储到list,供批量处理,或后续自己业务逻辑处理。
    }
 
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
   
        log.info("当前sheet读取完毕...");
        saveData();//2.调用方法,存储到数据库
    }
  
 	 	private void saveData() {
   
        //3.入库调用接口(得到数据后进行处理(存储到数据库))
      	//处理数据,XxxDtod转XxxEntity,例如
      List<XxxEntity> list = datas.stream().map(item -> {
   
            XxxEntity xxxEntity = new XxxEntity();
            xxxEntity.setName(item.getName());
            xxxEntity.setAge(item.getAge());
            
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧城以西没有故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值