vue 下载 流文件 导出表格

本文介绍了如何在Vue项目中处理后端返回的流文件,以实现文件下载功能,特别是导出Excel表格。方法包括使用js-file-download插件和通过Blob对象创建下载链接。详细步骤包括设置响应类型为'blob',解析Content-Disposition头获取文件名,以及创建和触发a标签下载。
摘要由CSDN通过智能技术生成

vue 下载 流文件 导出表格

我们在有时候会接到导出的任务,这里如果是后端给你下载地址的话,这样会好很多,但是也有很多是后端返回的流文件,这个时候 后台返回的
在这里插入图片描述
然后我们需要转码

方法一:

通过插件https://github.com/kennethjiang/js-file-download

然后

安装

npm install js-file-download --save

在需要使用的地方

var fileDownload = require("js-file-download");

接口文件部分

//以下fileName是取后台的文件名,如果没有'content-disposition',可以直接略过这一步,自己定:如fileName="xxx.xlsx"。
exportExport(参数).then(res => {
  	let fileName = res.headers['content-disposition'].match(/fushun(\S*)xls/)[0];
   fileDownload(res.data,fileName);
}).catch(error => {
	console.log(error)
})
方法二

通过Blob实现

exportExport(参数).then(res => {
	let blob = new Blob([res], {type: "application/vnd.ms-excel"}); 
	let objectUrl = URL.createObjectURL(blob); 
	window.location.href = objectUrl;
}).catch(error => {
	console.log(error)
})
更新 方法三

其实方法三和方法二也是很像的,不过这里要自己创建a标签
我们在接口管理文件中

export function exportList(data) {
  return request({
    url: "/api/demo/result/exportResult",
    method: "post",
    responseType: "blob", // 看到这个没有,重点
    data,
  });
}
exportList(xxxx).then(res => {
      const aEle = document.createElement("a"); // 创建a标签
      const href = window.URL.createObjectURL(res); // 创建下载的链接
      aEle.href = href;
      aEle.download = "信用报告模型.xlsx"; // 下载后文件名
      document.body.appendChild(aEle);
      aEle.click(); // 点击下载
      document.body.removeChild(aEle); // 下载完成移除元素
      window.URL.revokeObjectURL(href); // 释放掉blob对象
})

使用这个也可以下载出来你想要的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值