南强小屋 Design By 杰米
通过浏览器直接访问导出接口就会自动下载创建好的 Excel 表格。但是我们在vue里使用axios请求接口,一般是处理json数据,如果要处理文件流数据,需要做下特殊处理即可直接下载文件。
假如 下载Excel接口为:/apis/downExcel,则请求如下
import axios from 'axios' export const exportFile = params => { var param = new URLSearchParams() param.append('beginTime', params.beginTime) param.append('endTime', params.endTime) return axios({ method: 'post', data: param, url: '/apis/downExcel', responseType: 'blob' }) }
下载按钮触发下载方法如下:
downExcel() { var params = { beginTime: this.times[0], endTime: this.times[1] }; exportFile(params).then( data => { /** 获取生成设置好的文件名 */ var filename = data.headers["content-disposition"]; filename = filename.split("=")[1]; filename = decodeURIComponent(filename, "utf-8"); /** 接收文件流 */ const blob = new Blob([data.data]); let url = URL.createObjectURL(blob); /** 模拟浏览器操作Document,并模拟下载动作 */ let link = document.createElement("a"); link.style.display = "none"; link.href = url; link.setAttribute("download", filename); document.body.appendChild(link); link.click(); }, error => { console.log(error); this.$message.error("下载异常,请稍后再试"); }); }
这样就可以在vue项目中完整下载Excel接口,当然vue也有生成Excel的插件,接收后台的json数据然后在前端生成并下载。
补充知识:Vue实现通过后端接口导出Excel表格
需求:后端提供下载接口,返回二进制文件流,前端导出为xlsx格式的Excel表格
实现:
1、按钮调用下载接口
2、new Blob导出
PS:
1、第一步请求接口时,注意要设置请求responseType为blob类型,否则下载后,显示格式错误,无法打开
2、new Blob请求是,注意修改type类型为application/vnd.ms-excel
以上这篇vue通过接口直接下载java生成好的Excel表格案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无vue通过接口直接下载java生成好的Excel表格案例的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。