自学内容网 自学内容网

前端实现将二进制文件流,并下载为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下载请求参数-CSDN博客 

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

原文地址:https://blog.csdn.net/weixin_46041137/article/details/142339724

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!