前端实现将二进制文件流,并下载为excel文件

前端实现将二进制文件流,并下载为excel文件-腾讯云开发者社区-腾讯云

1、导入excel方法代码片段

// 导入时,接口调用,失败后得到文件流
axios(url, {
	method: 'post',
	responseType: 'blob',
	url: '/api/import',
  	data: formData, // 导入文件一般都用FormData 格式数据
}).then(res => {
  if(res.code === 200) {
    // 导入成功
  } else {
    // 导入失败,需要将返回的文件流res.data进行转换
    this.downloadBinaryFile(res.data, '导入失败后下载的报错文件')
  }
})

2、二进制文件流转换成excel方法实现

/**
 * 将二进制文件下载到本地,保存为excel文件
 * @param {*} binFile 二进制文件流
 * @param {*} fileName 下载后的文件名
 * @param {*} blobType 文件格式
 */
downloadBinaryFile(binFile, fileName, blobType="application/vnd.ms-excel") {
	const blobObj = new Blob([binFile], { type: blobType });
	const downloadLink = document.createElement('a');
	let url = window.URL || window.webkitURL || window.moxURL; // 浏览器兼容
	url = url.createObjectURL(blobObj);
	downloadLink.href = url;
	downloadLink.download = fileName;
	document.body.appendChild(downloadLink);
	downloadLink.click();
	document.body.removeChild(downloadLink);
	window.URL.revokeObjectURL(url);
}

vue进行下载与处理二进制流文件的方法详解_vue.js_脚本之家

Axios发送请求下载文件(重写二进制流文件) - 艺术诗人 - 博客园

解决axios传递数组参数问题 axios传递多个参数_jowvid的技术博客_51CTO博客 

axios 下载文件且携带参数(Excel、Word...)_axios下载请求参数-优快云博客 

        axios.get('/download-endpoint', {
          params: {
            arrayParam: ['item1', 'item2', 'item3'], // 数组参数
            anotherParam: 'value' // 其他非数组参数
          },
          responseType: 'blob' // 指定响应类型为blob以正确处理文件下载
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值