EasyExcel导入导出速成版

1. 导入依赖

<!--   easyExcel依赖     -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.2.1</version>
</dependency>

我使用的是3.2.1版本,具体版本之间的差异,可以看官网文档,链接我放这了https://easyexcel.opensource.alibaba.com/

2. Controller层代码编写(导入)

@PostMapping("import-excel")
public void importExcel(MultipartFile multipartFile) throws IOException {
    if (ObjUtil.isNull(multipartFile)) {
        return;
    }
    // 这里需要指定读用哪个class去读,然后读取第一个sheet文件流会自动关闭
    EasyExcel.read(multipartFile.getInputStream(), BmsBaseUserCompanySet.class, new PageReadListener<BmsBaseUserCompanySet>(dataList -> {
        for (BmsBaseUserCompanySet bmsBaseUserCompanySet : dataList) {
            // 业务逻辑
        this.exportExcelService.insert(bmsBaseUserCompanySet);
        }
    })).sheet().doRead();
}

其中我对代码的健壮性进行了判断,使用的是Hutool工具包,需要变动的就只有红色部分,使用自己需要映射的实体类即可。

2.1 进行测试

之后查看数据库数据即可

3. 编写controller层代码(导出)

@PostMapping("export-excel")
public void exportExcel() {
    // 设置文件导出的路径
    String realPath = "C://Log/";
    File folder = new File(realPath);
    if (!folder.isDirectory()){
        folder.mkdirs();
    }
    String fileName = realPath  + "User" + System.currentTimeMillis() + ".xlsx";
    // 这里需要指定写用哪个class去写,然后写到第一个sheet,名字为用户表 然后文件流会自动关闭
    EasyExcel.write(fileName, BmsBaseUserCompanySet.class).sheet("用户表").doWrite(data());
}
public List<BmsBaseUserCompanySet> data() {
    // 查询用户表,具体service层实现就不写了
    return this.exportExcelService.list(null);
}

其中红色区域代表可修改内容,当然,data() 方法也可以不提取出来。

3.1 进行测试

之后根据所写的导出地址,找到对应的文件即可。

PS:方式有很多种,我只分享我觉得很便捷高效的一种!!!

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值