SpringBoot进阶教程(八十五)最简洁的excel导出
EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。今天我们就快速实现一个excel的导出。非常简洁。v添加引用
<dependency>
<groupId>com.alibaba</groupId>
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
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]