EasyExcel导入excel进行数据的添加(读)

实际开发中我们可能会通过excel表批量添加数据这时候就要用到EasyExcel的读操作了

前端

EasyExcel导入excel进行数据的添加(读)

controller层

	@ApiOperation("导入数据字典")
    @PostMapping("/importData")
    public Result importData(MultipartFile file){
        dictService.importData(file);
        return Result.ok();
    }

service层

读与写不同的是要添加读的监听器,
监听器

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.lvren.yygh.cmn.mapper.DictMapper;
import com.lvren.yygh.model.cmn.Dict;
import com.lvren.yygh.model.cmn.DictEeVo;
import org.springframework.beans.BeanUtils;

public class DictListener extends AnalysisEventListener<DictEeVo> {


    DictMapper dictMapper;

    public DictListener(){}

    // 通过构造函数初始化dictMapper
    public DictListener(DictMapper dictMapper){
        this.dictMapper = dictMapper;
    }


    // 在执行excel读操作时会执行这个函数、从第二行开始读取数据时,将数据添加到数据库中
    @Override
    public void invoke(DictEeVo dictEeVo, AnalysisContext analysisContext) {
        Dict dict = new Dict();
        BeanUtils.copyProperties(dictEeVo,dict);
        dictMapper.insert(dict);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

进行读操作

	// 从excel中导入数据
    @Override
    public void importData(MultipartFile file) {

        try {
        	// 进行读操作
            EasyExcel.read(file.getInputStream(),DictEeVo.class,new DictListener(baseMapper)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
上一篇:EasyExcel的使用--写


下一篇:【easyexcel】1.实时下载导出报表