前后端分离,springboot结合easyExcel实现导出excel
程序员文章站
2021-12-23 21:07:30
...
首先说一下,我的需求是前端点击导出,后端直接把所有的订单数据导出到excel中,并且通过流的形式返回到前端。
下面就开始。
- 既然要用easyExcel,那么就先引入pom依赖,
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
- 创建一个要导出的字段模板类,这里@ExcelProperty是excel中的列名称,@ColumnWidth是列宽
@Data
public class OrderModel {
@ColumnWidth(18)
@ExcelProperty("提交时间")
private String createTime;
@ColumnWidth(50)
@ExcelProperty("收件人信息")
private String recipientsInfo;
@ColumnWidth(50)
@ExcelProperty("人员类别")
private String personTypeInfo;
@ColumnWidth(50)
@ExcelProperty("备注")
private String remark;
}
- 直接查数据然后导出,写一个控制层接口
注意,URLEncoder类导入java.net.URLEncoder,这个包;至于返回的数据可以根据业务来定义,这里就写void
@GetMapping("/excel")
public void excel(HttpServletResponse response) {
//这里代码去掉了,就是获取要导出的数据集合 orderModelList
OutputStream os = null;// 取得输出流
try {
os = response.getOutputStream();
response.setHeader("content-disposition", "attachment;fileName="+ URLEncoder.encode("订单信息"+ System.currentTimeMillis() + ".xlsx","UTF-8") );// 设定输出文件头,这里fileName=后面跟的就是文件的名称,可以随意更改
} catch (IOException e) {
e.printStackTrace();
}
EasyExcel.write(os, OrderModel.class).sheet("订单数据").doWrite(orderModelList);//sheet()里面的内容是工作簿的名称
response.reset();// 清空输出流
}
搞定,其他的一些东西可以去官网
推荐阅读
-
Springboot实现前后端分离excel下载
-
Springboot实现前后端分离excel下载
-
后端springboot、mybatisplus,前端vue-cli3、elementUI、axios,使用阿里巴巴提供的easyExcel导入导出excel表格
-
springboot+vue实现导出excel,使用easyexcel
-
Springboot采用EasyPoi采用前后端分离快速实现Excel导出功能
-
前后端分离,Excel导出实现
-
EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件
-
SpringBoot+vue前后端分离实现下载导出Excel功能,下载Excel为undefined,null,乱码...等坑
-
利用EasyExcel完整的springboot +vue前后端导出并下载excel表格
-
记录一下springboot+vue前后端分离实现的excel内容查询导出功能