王多静

这里是我的记事本

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

vue-element-admin后台返回数据流导出Excel

vue-element-admin后台返回文件流导出Excel, 自用!

原因: 项目导出有表格合并,后台做的处理,但是返回的是文件流 数据流

 

 

参考

html

  <el-button type="primary" @click="handleExportExcel">导出</el-button>

 

api

1
2
3
4
5
6
7
8
9
10
11
12
// 采购管理
import request from "@/utils/request";
 
// 采购管理 - 采购订单列表页 - 导出接口
export function exportExcel(data) {
  return request({
    url: "/purchase/order/export",
    method: "get",
    params: data,
    responseType:'blob'
  });
}

  

js

复制代码
 // 导出数据
    handleExportExcel(){
      this.loading = true
      // 接口多选 要的字符串 数组字符串需要来回转换
      this.searchForm.status = this.orderStatus.join(",");
      const param = Object.assign({}, this.searchForm);
      // console.log(param);
      // 接口获取数据
      Api.exportExcel(param)
        .then(res => {
          this.loading = false
          // const { code, data, msg, total } = res.data
          const aLink = document.createElement("a");
          let blob = new Blob([res], {type: "application/vnd.ms-excel"});
          aLink.href = URL.createObjectURL(blob);
          // 导出数据名称 带日期形式模板是"20201007-20210501采购订单"  如果把2020-10-07转化为20201007 转化方法replace(/[-]/g,"")
          aLink.setAttribute('download',this.searchForm.date_from.replace(/[-]/g,"") +'-'+this.searchForm.date_to.replace(/[-]/g,"") +'采购订单' + '.xlsx') ;
          aLink.click()
          this.$refs.loadElement.appendChild(aLink)
        }).catch(error => {
          this.loading = false
        })
    },
复制代码

 

posted on   王多静  阅读(1165)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-10-15 在拼接的js里 点击事件没有反应
点击右上角即可分享
微信分享提示