一、项目引入相关依赖

<!--easypoi相关的jar包-->
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>4.1.3</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>4.1.3</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>4.1.3</version>
</dependency>

注意:查看项目中是否引入easypoi相关依赖,查看版本是否冲突。

二、创建实体类,添加导入导出相关注解

@Data
public class Demo {

    final String IMGPATH = "xxxx";

    @Excel(name = "注册日期",orderNum = "1",importFormat = "yyyy-MM-dd",exportFormat = "yyyy-MM-dd")
    private Date dateTime;

    @Excel(name = "图片",orderNum = "2",type = 2,savePath = IMGPATH)
    private String image;
}

注:name:字段对应名称,与导入模板中名称一致

orderNum:排序

exportFormat :导出日期类格式化

importFormat 导入日期格式化

type:类型,2代表图片

savePath:保存图片的路径

三、导出excel

 /**
     *导出excel
     * @param response
     * @throws IOException
     */
    @PostMapping("/exportExcel")
    public void exportExcel(HttpServletResponse response) {
        try {
            //查询出要导出的数据
            List<Demo> list = ......;
            log.info("导出数据:"+list);
            list.forEach(demo-> {
                if(StringUtils.isNotEmpty(demo.getImage())){
                    // 修改图片的地址(改成实际的路径)
                    demo.setImage(RuoYiConfig.getProfile() + demo.getImage());
                }
            });
            //生成Excel
            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("Demo列表","Demo"),Demo.class, list);
            response.setHeader("content-disposition","attachment;fileName="+ URLEncoder.encode("Demo.xls","UTF-8"));
            ServletOutputStream outputStream = response.getOutputStream();
            workbook.write(outputStream);
            outputStream.close();
            workbook.close();
        }catch (Exception e){
            e.printStackTrace();
            log.error("Demo导出异常",e);
        }
    }