SpringBoot教程,如何实现最简洁Excel导出?

摘要:EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。今天我们就快速实现一个excel的导出。非常简洁。 v添加引用 &a
EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。今天我们就快速实现一个excel的导出。非常简洁。 v添加引用 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </dependency> v实体类加注解 @Data public class Info { @ExcelProperty("编号") private int id; @ExcelProperty("名称") private String name; } 如果是直接导出字段名作为列明,这一步可以省略。 v导出接口 将响应数据设置为excel格式。写入数据。Easyexcle提供了API供用户使用,只需要一行代码就能够将List列表转化为Excel文件。write方法指定输出流和写入数据的class对象;sheet方法指定excel的sheet名称;doWrite则指定写入的列表数据。 @GetMapping("excel") public void excel(HttpServletResponse response) { try { // 准备数据 List<Info> infoList = infoService.getInfoList(); if(!CollectionUtils.isEmpty(infoList)) { // 设置响应 response.setContentType("application/vnd.excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("file" + LocalDate.now(), "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); // 写入数据 EasyExcel.write(response.getOutputStream(), AnchorData.class).sheet("sheet1").doWrite(infoList); } } catch (Exception e) { e.printStackTrace(); } } 这里直接请求excel接口就可以下载了,效果比较简单直接,这里就不截图了。 v源码地址 https://github.com/toutouge/javademosecond/tree/master/hellolearn