前端使用Blob实现文件下载

问题来源:在项目中通常会有查询列表的功能,然后把通过筛选条件查出来的数据导入来,通常是导出excel表格这种格式
说人话:导出excel你咋实现?

人话有时候也不太容易理解?中。可以。没问题!直接上图
在这里插入图片描述
导出下面红色框中的一坨列表你咋实现

/**
 * 下载blob文件
 * @param {*} blob 文件
 * @param {*} fileName 文件名
 */
const downloadBlob = (blob, fileName) => {
  const alink = document.createElement('a')
  alink.download = fileName
  alink.style.display = 'none'
  alink.href = URL.createObjectURL(blob) // 这里是将文件流转化为一个文件地址
  document.body.appendChild(alink)
  alink.click()
  URL.revokeObjectURL(alink.href) // 释放URL 对象
  document.body.removeChild(alink)
}



  exportResult(params) {
      let query = Object.assign({}, params)
      if (this.page.count <= 0) {
        return this.$message('列表数据为空,无法导出。')
      }
      if (JSON.stringify(query) === '{}') {
        return this.$message('未选择筛选条件,无法导出!');
      }
      this.loadingDown = true
      this.$api['xg-productListExcel'](query).then(res => {
        console.log(res)
        let blob = new Blob([res])
        let fileName = '商品列表-' + dateFormat(Date.now(), 'yyyymmdd') + '.xlsx'
        this.$util.downloadBlob(blob, fileName)
        this.loadingDown = false
        this.$message.success('商品列表导出成功');
      }).catch(() => {
        this.loadingDown = false
        this.$message.error('商品列表导出失败,请稍后重试。');
      })
    },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值