关于el-table单元格合并的解决方案

简介: 关于el-table单元格合并的解决方案

el-table单元格合并示例

先看以下代码:

<template><div><el-table      :data="tableData"      :span-method="objectSpanMethod"borderstyle="width: 100%; margin-top: 20px"><el-table-columnprop="id"label="ID"width="180"></el-table-column><el-table-columnprop="name"label="姓名"></el-table-column><el-table-columnprop="amount1"label="数值 1(元)"></el-table-column><el-table-columnprop="amount2"label="数值 2(元)"></el-table-column><el-table-columnprop="amount3"label="数值 3(元)"></el-table-column></el-table></div></template><script>exportdefault {
data() {
return {
tableData: [{
id: '12987122',
name: '王小虎',
amount1: '234',
amount2: '3.2',
amount3: 10        }, {
id: '12987123',
name: '王小虎',
amount1: '165',
amount2: '4.43',
amount3: 12        }, {
id: '12987124',
name: '王小虎',
amount1: '324',
amount2: '1.9',
amount3: 9        }, {
id: '12987125',
name: '王小虎',
amount1: '621',
amount2: '2.2',
amount3: 17        }, {
id: '12987126',
name: '王小虎',
amount1: '539',
amount2: '4.1',
amount3: 15        }]
      };
    },
methods: {
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex===0) {
if (rowIndex%2===0) {
return {
rowspan: 2,
colspan: 1            };
          } else {
return {
rowspan: 0,
colspan: 0            };
          }
        }
      }
    }
  };
</script>

效果:
image.png

实现el-table单元格合并的方法

从上述示例我们可以知道,el-table绑定:span-method="objectSpanMethod"即可实现合并,objectSpanMethod是处理单元格合并方案的回调函数

需要注意的是,objectSpanMethod是会被循环执行的,整个table有多少单元格,objectSpanMethod就会执行多少次。


objectSpanMethod接收一个object参数,代表当前执行objectSpanMethod的单元格信息,参数解构出四个属性,分别是row(当前行), column(当前列), rowIndex(当前行号,从0开始), columnIndex(当前列号,从0开始)


objectSpanMethod返回一个描述合并单元格的对象或数组,如果是对象,那么对象的rowspan代表要合并的行数,colspan代表要合并的列数;如果是数组,那么数组第一个元素代表要合并的行数,数组第二个元素代表要合并的列数


而且千万千万千万要注意的是,单元格的合并,是从起始位置合并的,而不是从末尾位置合并,意思就是,比如你想要合并3到6行且是第一列的单元格,那么应该从第三行第一列开始合并,按照如下代码进行设置

objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex===0) { // 先判断是不是第一列,只有第一列才执行合并if (rowIndex===2) { // 先判断是不是第三行,只有第三行才执行合并return {
rowspan: 3, // 从起始位置,即第三行开始,执行合并3行colspan: 1, // 从起始位置,即第一列开始,执行合并1列            };
          } else {
return { // 第一列的其他元素不执行合并rowspan: 0, // 为0,不执行合并colspan: 0// 为0,不执行合并            };
          }
        }
      }



目录
相关文章
|
5月前
HTML中的<br>、<hr>和<pre>标签使用指南
HTML中的<br>、<hr>和<pre>标签使用指南
114 2
|
2月前
Twaver-HTML5基础学习(38)劈分面板SplitPane
本文介绍了如何在Twaver-HTML5中使用SplitPane组件来创建可分割的面板,通过动态调整分割条来改变面板的大小,支持水平和垂直分割。
34 2
Twaver-HTML5基础学习(38)劈分面板SplitPane
|
2月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
60 19
|
前端开发
HTML常用的颜色代码参考表|前端使用颜色必备
HTML常用的颜色代码参考表|前端使用颜色必备
HTML常用的颜色代码参考表|前端使用颜色必备
HTML table表格元素边框修改为单线
HTML table表格元素边框修改为单线
|
6月前
|
数据采集 数据安全/隐私保护
HTML表单标签和表单项标签示例
HTML表单标签和表单项标签示例
77 1
|
JavaScript 前端开发
Html 自动合并单元格插件
日常开发中,经常遇到表格里需要自动合并单元格,考虑到写服务器控件比较消耗性能,因些还是把这种工作交给客户端Javascript去做吧,基于习惯用jquery框架,所以封装了一个Jquery插件。
140 0
html关于表格table的相关知识分享【2020网页综合笔记02】
html关于表格table的相关知识分享【2020网页综合笔记02】
125 0
html关于表格table的相关知识分享【2020网页综合笔记02】
uiu
|
移动开发 前端开发 数据安全/隐私保护
HTML 基础【2】 -- 表格标签 / 表单标签
HTML 基础【2】 -- 表格标签 / 表单标签
uiu
146 0
HTML 基础【2】 -- 表格标签 / 表单标签
|
JavaScript 前端开发
html table 如何导出为excel表格案例分享
html table 如何导出为excel表格案例分享
html table 如何导出为excel表格案例分享