ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue中后端做Excel导出功能返回数据流前端如何做处理

2022-06-24 09:03:07  阅读:188  来源: 互联网

标签:vue res 中后 Excel window link blob objectUrl data


方法一:

exportData() {
        exportDevelopTaskProgressListInfo({
          ...this.where,
          startTime: this.startDate,
          endTime: this.endDate
        });
      },

  api接口里:

export async function exportDevelopTaskProgressListInfo(params) {
axios({
      url: '/Statistics/exportDevelopTaskProgressListInfo',
      method: 'post',
      data: params,
      responseType: 'blob'
    }).then((res) => {
      if (res.data.size != 0) {
        const filename = '报表';
        let blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
        if (window.navigator && window.navigator.msSaveBlob) {
          window.navigator.msSaveBlob(blob, filename);
        } else {
          //其他浏览器
          let link = document.createElement('a'); // 创建a标签
          link.style.display = 'none';
          let objectUrl = URL.createObjectURL(blob);
          link.href = objectUrl;
          link.setAttribute('download', filename);
          link.click();
          URL.revokeObjectURL(objectUrl);
        }
      } else {
        res.data.message.error('暂无下载内容');
      }
    });

}

  方法二:

// 导出数据
      exportData() {
        exportDevelopTaskProgressListInfo({
          ...this.where,
          startTime: this.startDate,
          endTime: this.endDate,
          current: this.page,
          pageSize: this.limit
        }).then((res) => {
          console.log(res);
          if (res.data.size != 0) {
            const filename = '报表';
            let blob = new Blob([res.data], {
              type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
            });
            if (window.navigator && window.navigator.msSaveBlob) {
              window.navigator.msSaveBlob(blob, filename);
            } else {
              //其他浏览器
              let link = document.createElement('a'); // 创建a标签
              link.style.display = 'none';
              let objectUrl = URL.createObjectURL(blob);
              link.href = objectUrl;
              link.setAttribute('download', filename);
              link.click();
              URL.revokeObjectURL(objectUrl);
            }
          } else {
            res.data.message.error('暂无下载内容');
          }
        });
      },

  api接口里:

export async function exportDevelopTaskProgressListInfo(params) {
  return await axios({
    url:"/Statistics/exportDevelopTaskProgressListInfo",
    loading:true,
    method: "post",
    responseType: "blob",
    header: {'Content-Type': ' application/octet-stream'},//
    rest:true,
    data:params
})

  

标签:vue,res,中后,Excel,window,link,blob,objectUrl,data
来源: https://www.cnblogs.com/Ao-min/p/16407519.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有