element中table实现多表头动态数据/合并行/合并列/导出excel功能实现

参考地址:https://blog.youkuaiyun.com/hefeng6500/article/details/82778680?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
实现如图功能:
在这里插入图片描述
html: 其中:span-method="dataArraySpanMethod" 是合并列需要的属性

<template>
  <div>
    <el-table class="crmonepage-hello" ref="tabled" :data="list" style="width: 100%" :span-method="dataArraySpanMethod">
      <el-table-column
        v-for="(col,index) in cols"
        :label="col.label"
        :key="index"
        :width="col.width || null"
        :prop="col.prop"
      >
        <el-table-column
          v-for="(props, propsindex) in col.propsChildren"
          :label="props.label"
          :key="propsindex"
          :width="props.width || null"
          :prop="props.prop"
        ></el-table-column>
      </el-table-column>
    </el-table>
    <button @click="exportExcel"></button>
  </div>
</template>

数据格式:

  data() {
   
    return {
   
      list: [
        {
   aQty: "1",bQty: "8",cQty: "2",dQty: "-1",eQty: "11",brand: "一点点",brand2: "列合并测试",brand3: "测试"},
        {
   aQty: "3",bQty: "2",cQty: "12",dQty: "-3",eQty: "121",brand: "一点点",brand2: 
Element Plus 的 `el-table` 可以通过结 Vue.js 的组件化思想以及 Element Plus 提供的数据导出功能(如 `el-table-column` 的 `export-type` 属性),实现一个多表头的数据导出。下面是一个基本示例: ```html <template> <el-table :data="tableData" style="width: 100%" @export="handleExport" > <!-- 多表头部分 --> <el-table-column type="index" label="#" width="60"></el-table-column> <el-table-column v-for="(header, index) in headers" :key="index"> <template slot-scope="scope"> {{ header }} <el-tooltip class-name="el-tooltip" effect="dark" placement="top"> <span slot="content">{{ scope.row[header] }}</span> </el-tooltip> </template> </el-table-column> <!-- 表体数据列 --> <el-table-column v-for="(column, index) in columns" :key="index" :label="column.label" :prop="column.prop"> <template slot-scope="scope"> {{ scope.row[column.prop] }} </template> </el-table-column> <!-- 导出按钮 --> <el-table-column align="right" fixed="right"> <template slot-scope="scope"> <el-button type="primary" size="small" @click="handleExport">导出</el-button> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: ..., headers: ['Header1', 'Header2'], // 多表头数组 columns: [ { prop: 'column1', label: '列1' }, { prop: 'column2', label: '列2' } // 更多列... ], }; }, methods: { handleExport() { const exportType = 'excel'; // 或者 'csv' this.$refs.table.exportCsv({ fileName: '表格数据_' + new Date().getTime() + '.csv', header: this.headers.concat(this.columns.map(column => column.label)), // 多表头和普通表头 data: this.tableData, type: exportType, // 根据需要选择导出类型 }); }, }, }; </script> ``` 在这个例子中,我们首先定义了两个表头数组,`headers` 和 `columns`,然后在导出函数 (`handleExport`) 中,并这两个表头作为导出文件的标题,并将数据导出到 CSV 或 Excel 文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值