小工具知识网

当前位置: 首页 > 行业知识 > Spring boot集成easy excel实现导入导出操作

行业知识

Spring boot集成easy excel实现导入导出操作

2026-11-13 22:53:00 来源:互联网转载

Spring boot集成easy excel实现导入导出操作

一 查看官网

easyexcel官方网站地址为easyexcel官网,官网的信息比较齐全,可以查看官网使用easyexcel的功能。

二 引入依赖

使用easyexcel,首先要引入easyexcel的maven依赖,具体的版本根据你的需求去设置。

                            com.alibaba            easyexcel            2.2.10        

三 实现简单导入

首先定义实体类

@Data@AllArgsConstructor@NoArgsConstructorpublic class Device {    @ExcelIgnore    private Integer id;    @ExcelProperty("设备名称")    private String name;    @ExcelProperty("设备编号")    private String no;    @ExcelProperty("设备描述")    private String description;    @ExcelProperty("设备类型")    private Integer type;    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")    @ExcelIgnore    private LocalDateTime createTime;    @ExcelIgnore    private Integer status;}

在定义实体类的时候,使用到了lombok,需要提前引入lombok的依赖

                            org.projectlombok            lombok            true        

准备工作完成之后,就可以写一个简单的导入了。如下,我在controller中写了导入方法,通过EasyExcel的read方法把excel中的数据解析成对应的列表,然后就可以直接调用service导入了。

    @RequestMapping("save")    public String save(MultipartFile file) throws IOException {        String originalFilename = file.getOriginalFilename();        List list = EasyExcel.read(file.getInputStream()).head(Device.class).sheet().doReadSync();        deviceService.batchSave(list);        return "redirect:/device/lists";    }

四 实现简单导出

在controller写了简单的导出方法,拿到service得到的数据,就可以直接调用EasyExcel的write方法导出了。

@GetMapping("export")    public void export(Dto dto,HttpServletResponse response) throws IOException {        // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");        response.setCharacterEncoding("utf-8");        // 这里URLEncoder.encode可以防止中文乱码         String fileName = URLEncoder.encode("设备数据", "UTF-8").replaceAll("\+", "%20");        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");        List deviceList = deviceService.getDeviceList(dto);        EasyExcel.write(response.getOutputStream(), Device.class).sheet("数据").doWrite(deviceList);    }

五 批量导出功能

请参考easyexcel实现批量导出功能

总结

使用easyexcel实现导入和导出确实是非常方便的,同时,easyexcel还支持批量导入和批量导出,确实非常nice。

上一篇:哪里可以查服务器排名?

下一篇:JSP BBS源码揭秘,探索论坛系统的核心功能与实现细节