vue中el-table前端导出excel数据表格

一、el-table为正常时,导出方法如下:
在这里插入图片描述

1.添加导出按钮

        <el-button class="greenLinearbg dc"  size="small"  @click="webExportTotalExcel()" v-if="totalBillShow">导出</el-button>

2.导出方法

 // web导出汇总单excel
      webExportTotalExcel(){
        // 获取表格数据
        //const tableData = this.userTotalList;
        const tableData = this.userTotalList.map(row => {  //创建一个新的数组,处理null值
          return Object.keys(row).reduce((acc, key) => {
            acc[key] = row[key] === null ? '' : row[key];
            return acc;
          }, {});
        });

        // 构建 Excel 文件内容
        let excelContent = `<html><head><meta charset="UTF-8"></head><body><table border="1">`;

        // 添加表头
        excelContent += '<tr>';
        for (const column of this.$refs.tableRef.columns) {
          if (column.property) {
            excelContent += `<th>${column.label}</th>`;
          }
        }
        excelContent += '</tr>';

        // 添加表格数据
        for (const row of tableData) {
          excelContent += '<tr>';
          for (const column of this.$refs.tableRef.columns) {
            if (column.property) {
              excelContent += `<td>${row[column.property]}</td>`;
            }
          }
          excelContent += '</tr>';
        }

        // 构建完整的 Excel 文件内容
        excelContent += '</table></body></html>';

        // 创建 Blob 对象
        const blob = new Blob([excelContent], { type: 'application/vnd.ms-excel' });

        // 创建链接并触发下载
        const link = document.createElement("a");
        link.href = URL.createObjectURL(blob);
        link.download = '汇总单.xlsx'; // 设置默认文件名
        link.style.display = "none";
        document.body.appendChild(link);
        link.click();
        window.URL.revokeObjectURL(link.href);
      },

二、el-table中列为循环数据时,如下图所示:
在这里插入图片描述
在这里插入图片描述
导出方法如下:
1.导出按钮:

<el-button class="greenLinearbg dc"  size="small"  @click="webExportHistoryExcel('','历史账单','el-table__fixed-right',0,'message')" v-if="historyBillShow">导出</el-button>

2.导出方法为:

  // web导出历史账单excel
      webExportHistoryExcel(id,excelName,className,number=0){
        const loading = this.$loading({
          lock: true,
          text: '数据导出中',
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        });
        const columns = this.$refs.message.columns,outputColumns=[];
        for(let i=0,len=columns.length;i<len;i++){
          if('label' in columns[i]){
            if('prop' in columns[i])
              outputColumns.push(columns[i].prop);
            else if('slot' in columns[i] && columns[i].slot!='action' && columns[i].label!='操作')
              outputColumns.push(columns[i].slot);
          }
        }
        if(this.$refs.message.selectRow=='all'){
          request({
            url:'/system/nonResidentYhzd/selectYhzdTable',
            method:'post',
            data:{pageNum:1,pageSize:this.queryParams.total}
          }).then(response => {
            ExportUtils.exportExcel(id,excelName,'',className,number,this.$refs.message.selectRow,response.rows,outputColumns);
            loading.close();
          });
        }
        else{
          ExportUtils.exportExcel(id,excelName,'',className,number,this.$refs.message.selectRow,this.$refs.message.selectList,outputColumns);
          loading.close();
        }
      },

相关推荐

  1. Vue3 将el-table数据导出excel并下载

    2024-07-12 06:32:03       60 阅读
  2. Vue3el-table表格数据不显示

    2024-07-12 06:32:03       42 阅读
  3. 基于 element-ui 表格组件 el-table 导出表格数据

    2024-07-12 06:32:03       28 阅读
  4. vue表格插件vxe-table导出 excel

    2024-07-12 06:32:03       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 06:32:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 06:32:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 06:32:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 06:32:03       69 阅读

热门阅读

  1. vue2修改组件样式

    2024-07-12 06:32:03       22 阅读
  2. MongoDB:基础语句及练习

    2024-07-12 06:32:03       26 阅读
  3. Xcode本地化全攻略:打造多语言应用的秘诀

    2024-07-12 06:32:03       25 阅读
  4. C++ const 关键字详解

    2024-07-12 06:32:03       27 阅读
  5. 东方博宜1627 - 暑期的旅游计划(2)

    2024-07-12 06:32:03       26 阅读
  6. 防火、防盗、防windows defender

    2024-07-12 06:32:03       27 阅读
  7. Linux 之前的 Unix 桌面沉浮启示录

    2024-07-12 06:32:03       29 阅读
  8. 从 Github 安装 R packages 不完全指南

    2024-07-12 06:32:03       23 阅读
  9. 【面试题】MySQL(第四篇)

    2024-07-12 06:32:03       26 阅读
  10. C++学习笔记

    2024-07-12 06:32:03       27 阅读