前端vue导出文件流excel

后台返回的是文件流 excel,以下代码前端直接导出

1. 获取当前时间 -- 用来对导出文件命名

//获取当前时间
getCurrentTime() {
    let yy = new Date().getFullYear()
    let mm = new Date().getMonth() + 1
    let dd = new Date().getDate()
    let hh = new Date().getHours()
    let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
    let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
    this.getTimeExcel = yy + '-' + mm + '-' + dd + '_' + hh + "-" + mf + "-" + ss;
},
           

2. 导出excel事件

/************导出文件**************/
exportData() {
   this.getCurrentTime()
   const getTimeExcel = this.getTimeExcel; //这里获取当前时间用来命名

   if (this.curveModeCurveId == "" || this.curveModeCurveId == null) {  //这里是我自己加的判断
      this.$message({
      type: 'error',
      message: '请选中要导出的曲线!'
      });
   } else {
     exportExcelData('get', {
     curveId: this.curveModeCurveId,
   }, {
      responseType: 'blob',
      headers: {
      'Content-Type': 'application/json'
      },
   }).then(function (res) {
      let blob = new Blob([res], {type: 'application/vnd.ms-excel'});
      if (window.navigator && window.navigator.msSaveOrOpenBlob) {
          window.navigator.msSaveOrOpenBlob(blob, getTimeExcel);
      } else {
          const link = document.createElement('a')
          link.style.display = 'none'
          link.href = URL.createObjectURL(blob)
          link.download = getTimeExcel+'.xls' //这里是文件名
          document.body.appendChild(link)
          link.click()
          document.body.removeChild(link)
       }
    }).catch(function (error) {
       console.log(error);
    })
    }
},

3. 页面直接调用事件即可导出

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值