SpringBoot后端+Vue之AntDesignVue前端实现查询表格导出excel功能

用的是阿里的com.alibaba.excel包,pom的依赖如下

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.6</version>
</dependency>

涉及到前后端跨域问题看 

springboot解决跨域问题_a295277302的博客-CSDN博客_springboot解决跨域

前端的界面:

 mapper

service层,直接return dao层的接口

业务逻辑层

因为原本的查询结果里,有LocalDateTime的时间类型,直接BeanCopy到为导出excel创建的bean会报错无法解析这个类型,于是做了转化为String的操作。这里的xxxReportBean是专门为了导出excel而创建的bean,里面的属性名跟类型与原查询条件的实体类属性名一致,只是时间类型的字段换成了String类型。ExcelUtils这个方法类下面会放图

 

ExcelUtils.createxxxxx....

这里可以看到会给httpServletResponse增加headers,可以在前端浏览器的控制台里的网络那里,response会有上面所指的'filename'这一值,用户自定义即可,可能还需要在处理跨域的工具配置类里加上

对应的为了导出excel的实体类Bean,加上@ExcelProperty,index从0开始,value是在excel表中显示的值

跨域headers:

如果不加的话可能前端到时拿不到headers,尽管在response那里能看见有filename,但是console.log是没有的...不给用

controller:

前端:

criteria是后端传过来的数据,具体是什么可以看文章开头PostMan的测试结果

 exportExcel方法:

 效果图:

想看headers有没有就在前端代码console.log一下就知道了

excel效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值