需求,对指定的列表展示进行合并单元格,循环展示指定行和指定列。

1.官方文档

通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。

1.2.两种返回方法

其实就是两种返回值的形式,本文章只用数组形式的返回举例:

methods: {      arraySpanMethod({ row, column, rowIndex, columnIndex }) {        //如果当前是第一行。因为下标从0开始,所以第一行的下标能被整除。        if (rowIndex % 2 === 0) {          //如果当前列是第一行第一列,合并1行,和2列          if (columnIndex === 0) {            return [1, 2];          } else if (columnIndex === 1) {            //如果当前列是第一行第二列,把值清除。注意,不清除的话,值会在后面一列展示,影响布局。            return [0, 0];          }        }      },}

数组第一个元素代表rowspan(要合并的行数),第二个元素代表colspan(要合并的列数)

1.3 四个传入参数

该方法接收四个传入参数,当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。这4个属性对我们定制化合并单元格很有帮助。要注意的是,行号和列号都是从0开始网上递增的。

1.4深入理解返回值的意义

想要做好合并,首先我们要理解如何合并,以及合并后的数据是如何进行处理的。以数组为例,Element接收第一个参数rowspan和第二个参数colspan,然后根据返回的值进行合并。

如图,如果想将左边的列合并单元格成右边的列,那么只需要在数组中返回return [1,2]就行了,表示合并一行两列。
代码如下:

methods: {      arraySpanMethod({ row, column, rowIndex, columnIndex }) {        //如果是第一列        if (columnIndex === 0||columnIndex ===1) {          //如果当前单元格是第一列和第二列的第一行,进行向下合并单元格              if (rowIndex % 2 === 0) {                  return [1, 2];              }else {                  //如果当前单元格是第一列和第二列的第二行,值置空(不置空则重复值会存在并向后一行展示,影响布局)                  return [0, 0];              }        }      },}

1.5为什么需要置空操作以及不需要合并的单元格需要控制吗?

先回答后面一个问题,不需要合并操作的单元格不用控制,return[1,1]这种操作不需要。因为单元格就是原子的,是代码控制的最小单位。
置空操作则需要反推下:如果不置空的话有什么影响?

(图片仅作示意,并非真实情况。)
首先我们要知道,当我们合并单元格时,系统并不会把两个单元格的值拼接在一个单元格里。而是会取第一个单元格的值。
Element在操作单元格时,也是取第一个单元格的值,但是不会将第二个单元格的值置空,这就会导致如上图的情况。即,合并是成功了,多出的值没有做处理。
因此,我们需要手动处理,定位到被合并的行或者列,将其值置为空,即返回[0,0]。

2 注意事项

2.1:当我们使用置空操作时一定要注意范围问题,避免不小心,将其他的无辜的值也给置空了。举例如下

methods: {      arraySpanMethod({ row, column, rowIndex, columnIndex }) {        //如果是第一列        if (columnIndex === 0||columnIndex ===1) {          //如果当前单元格是第一列和第二列的第一行,进行向下合并单元格              if (rowIndex % 2 === 0) {                  return [1, 2];              }        }else {                  //错误操作                  return [0, 0];        }      },}

可以看到,如果像上面那样进行返回,那么除了第一列和第二列,所有的单元格都会被置空。布局突然错乱,可能就是作用域有问题,要认真检查。

2.2 巧用%进行换行合并操作
使用取余函数,可以帮我们确定要操作的行和列,对合并单元格非常有用。

2.3 使用填充法进行不规则表格填充
当我们每个第二行需要自定义表头时,可以将值定位固定值,利用合并单元格的特性,删除重复的固定值。即可进行不规则填充,如下图。

当然,如果是需要小计功能,有单独的方法,我这个只针对自定义第二行的表头。

bootstrap table 合并行_ElementUI Table组件如何使用合并行或列功能深入解析相关推荐

  1. asp单元格合并后宽度没有合并_ElementUI Table组件如何使用合并行或列功能深入解析...

    需求,对指定的列表展示进行合并单元格,循环展示指定行和指定列. 1.官方文档 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row.当前列col ...

  2. antd table合并行或者列(动态添加合并行、列)

    antd table合并行或者列(动态添加合并行.列) 表头只支持列合并,使用 column 里的 colSpan 进行设置. 表格支持行/列合并,使用 render 里的单元格属性 colSpan ...

  3. 【合并单元格】纵向合并单元格之前对数组处理【针对饿了么element的table的span-method合并行或列的计算方法】

    <template><el-table :span-method="spanMethod"><el-table-column label=" ...

  4. antd Table合并行 rowSpan

    实现这种效果,同一种知识点类型合并行. <Tablecolumns={columns}// dataSource={dataSource}dataSource={createNewArr(dat ...

  5. Vue2 + ant design vue1.7.8版本 Table组件 手动拖拽、可伸缩列功能

    低版本的antd table组件 官网文档上有可伸缩列功能,但是用起来有很明显的bug,无法直接拿来用:接下来给大家提供一个手写的拖拽方案: 1.首先,写好v-table组件,这里最重要的就是tabl ...

  6. table 表格合并行或列

    合并单元格 <table><tbody><tr><th colspan="2">我是占位符</th><th col ...

  7. Ant Design之表格动态合并行

    在web开发中,表格的行合并是一个很常见的需求.antd也提供了这种功能,但是文档中的示例代码却和我想象中的相差甚远,如下所示,它是通过一种很笨的办法实现的行合并.这样当表格的数据源是动态获取的,我们 ...

  8. easeExcel合并行

    最近想要做一个合并行的需求,发现网上都是合并列的代码,就自己根据合并列的代码写了一个合并行的方法,记录一下. 下面代码中的mergeWithPrevCol()方法就是单元格向左合并,也就是合并一行中相 ...

  9. ag-grid 合并单元格(合并行)

    最终效果如图: 页面完整代码如下: <!doctype html> <html><head><meta charset="utf-8"&g ...

最新文章

  1. 如何学习Python开源项目代码
  2. 如何制作出让女朋友满意的大片
  3. 解决quartz的job无法注入spring对象
  4. spring总结(01)
  5. CV Code|计算机视觉开源周报20200602期~文末送书
  6. 为双十二灵感设计屯好素材!
  7. 证明二叉树节点数公式
  8. nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
  9. ubuntu install wiznote
  10. 计算机四级网络工程师——计算机网络部分题目笔记
  11. star法则开发简历模板_软件开发的第一法则
  12. Java多线程实现多用户与服务端Socket通信
  13. 读万卷书,行万里路。
  14. < 数据结构 > 树与二叉树
  15. 2020找工作更难了?做好这4方面,找到高薪好工作
  16. 计算机组成原理超详解
  17. 【Prefix-Tuning】Fine-tuning过时啦,NLG生成任务如何Tuning?
  18. 如何手搭Hadoop集群
  19. MySQL主从同步数据
  20. 大富翁棋盘抽奖版 js

热门文章

  1. rpm软件包管理的详细解读
  2. 转:性能测试常见术语
  3. atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較...
  4. table标签中thead、tbody、tfoot的作用
  5. 《BI那点儿事》Cube的存储
  6. HDU-----(4858)项目管理(模拟)
  7. 传统蓝牙和Bluz低功耗蓝牙的区别
  8. Android4.4 Sensor APP--HAL代码流程
  9. GeoWebCache之单独部署arcgis瓦片
  10. 写python代码案例_keras topN显示,自编写代码案例