前端下载本地excel文件

 1、public下的static存放test.xlsx文件

      const a = document.createElement('a')
      a.href = './static/test.xlsx'
      a.download = 'test.xlsx'
      a.click()

2、流下载

    const user = JSON.parse(localStorage.getItem('current_user'))
    axios({
      timeout: 1000 * 60 * 5,
      headers: {
        'Content-Type': 'application/json; charset=UTF-8',
        'x-authority-token':user.token,
        'x-app-code': 4
      },
      method: 'post',
      responseType: 'blob',
      url: url
    }).then(res => {
      if (res.data.type === 'application/json') {
        var blob = new Blob([res.data], {
          type: 'application/vnd.ms-excel'
        })
        var reader = new FileReader()
        reader.readAsText(blob, 'utf-8')
        reader.onload = function(e) {
          const resultObj = JSON.parse(reader.result)
          if (resultObj.code !== 0) {
            // _this.$openMessage({ message: resultObj.msg, type: 'error' })
          }
        }
      } else {
        if (window.navigator.msSaveOrOpenBlob) {
          // 兼容IE
          try {
            var blobObject = new Blob([encodeURI(res.data)])
            // eslint-disable-next-line no-undef
            window.navigator.msSaveOrOpenBlob(blobObject, fileName)
          } catch (e) {
            console.log(e)
          }
        } else {
          const blob = new Blob([res.data], {
            type: 'application/octet-stream;charset=UTF-8'
          })
          var downloadElement = document.createElement('a')
          downloadElement.download = '节假日管理模板.xlsx' // 下载的文件名
          downloadElement.href = window.URL.createObjectURL(blob) // 创建下载的链接
          downloadElement.click() // 点击下载
          document.body.appendChild(downloadElement)
          document.body.removeChild(downloadElement) // 下载完成移除元素
          window.URL.revokeObjectURL(downloadElement.href) // 释放掉blob对象
        }
      }
    })
  } catch (e) {
    console.log('🚀🚀🚀🚀🚀 ~~~~~~~~ downloadTemplate ~~~~~~~~ e:', e)
    // this.downLoading = false
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值