第一次使用easyExcel,记一次SpringBoot实现的demo。一个文件多个sheet页操作。多sheet多实体(不同的实体导出到不同的sheet,不同的sheet导入到不同的表)
写在前面:demo里有些重复的代码,如果有大佬看到并能帮忙改进,感激不尽。希望能帮到需要的人。上代码顺序:工具类--实体--mapper-service--controller--演示结果
easyExcel官方地址: Alibaba Easy Excel - 简单、省内存的Java解析Excel工具 | 首页
先上导入
工具类
package com.example.easyexcel.utils;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName:
* @author: jiangze
* @create: 2021-11-22 16:07
* @description:
*/
@Slf4j
@Data
public class DemoDataListener<E> extends AnalysisEventListener<E> {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoDataListener.class);
private List<E> list = new ArrayList<E>();
@Override
public void invoke(E data, AnalysisContext context) {
LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data));
list.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
LOGGER.info("当前sheet数据解析完成!");
}
}
实体类
导入的实体类就是普通的实体类,