vue 导出 excel/csv文件

项目背景:需要导出用户的订阅消息的信息列表
后端支持:接口返回二进制流文件,直接调用接口就可获取xslx
前端准备:看代码

       const data = this.formData //接口入参数
       const  url = '/v2/XXXX/xxxxxx/export' //接口路径
      //responseType: 'blob',一定不要忘记,不然会乱码
       axios.post( url, data ,{headers:{token: 'XXXXXX'},responseType: 'blob'}).then( (res) => {
          if(res.status === 200 && res.data){
            // type: 'text/csv;charset=utf-8,%EF%BB%BF' ; 
            //需要导出 csv文件就用这上面的格式,需要导出xlsx就用下面的
            const blob = new Blob([res.data],{type:'application/vnd.ms-excel'})
            const href = window.URL.createObjectURL(blob) // 创建下载的链接
            let downloadElement = document.createElement('a')
            downloadElement.href = href
            // 自定义下载后文件名,可以不设置
            downloadElement.download = 'filename.xlsx'
            downloadElement.click()
            window.URL.revokeObjectURL(href) //释放掉blob对象
          }else{
            this.error(res.message)
          }     
        }).catch((error)=>{
          console.log(error)
        })

记录一下,下次用起来可以直接找

你可能感兴趣的:(vue 导出 excel/csv文件)