elementUI前端做全部数据导出

ElementUI 本身并不提供以文件流的形式导出数据的功能,但可以借助其他第三方库来实现。以下是一种实现方式:

  1. 首先,安装并引入 xlsx 库
    npm install xlsx
    import XLSX from 'xlsx'
  2. 创建导出函数,该函数接收两个参数:数据和文件名
     //导出操作
        //该操作需要在前端里面<el-table>里面加入ref="table"
        exportDataToExcel(data, filename) {
          // 1. 获取表头
          const headerRow = Array.from(
            this.$refs.table.$el.querySelectorAll('.el-table__header-wrapper th')
          );
          const labelValues = headerRow.map((header) => {
            return header.textContent.trim(); // 使用textContent获取表头文本
          });
          // 去除数组里面是空的
          let newList = labelValues.filter(item => item !== "");
          // 2. 获取数据
          const dataArray = data.map((obj) =>
            Object.values(obj).filter((value) => typeof value !== 'object')
          );
          dataArray.unshift(newList);
    
          // 3. 导出Excel
          const worksheet = XLSX.utils.aoa_to_sheet(dataArray);
          const workbook = XLSX.utils.book_new();
          XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
          XLSX.writeFile(workbook, filename);
        },
  3. 在需要导出数据的地方调用该函数
        //全部数据导出
        exportAllData(){
          listMzlExportAllData().then((response)=>{
            const resp = response.data
            this.exportDataToExcel(resp, '订单明细.xlsx')
          })
        },
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值