js必须等表格加载完成后调用。 效果如图:

js代码:

function uniteTable(tableId,colLength) {

//colLength-- 需要合并单元格的列1开始

var tb=document.getElementById(tableId);

tb.style.display='';

var i = 0;

var j = 0;

var rowCount = tb.rows.length; // 行数

var colCount = tb.rows[0].cells.length; // 列数

var obj1 = null;

var obj2 = null;

var obj3 = null;

//为每个单元格命名

for (i = 0; i < rowCount; i++) {

for (j = 0; j < colCount; j++) {

tb.rows[i].cells[j].id = "tb__" + i.toString() + "_" + j.toString();

}

}

//合并行

for (i = 0; i < colCount; i++) {

if (i == colLength) break;

obj1 = document.getElementById("tb__0_" + i.toString())

for (j = 1; j < rowCount; j++) {

obj2 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

if (obj1.innerText == obj2.innerText) {

obj1.rowSpan++;

obj2.parentNode.removeChild(obj2);

} else {

obj1 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

}

}

}

//合并列

for (i = 0; i < rowCount; i++) {

colCount = tb.rows[i].cells.length;

obj1 = document.getElementById(tb.rows[i].cells[0].id);

for (j = 1; j < colCount; j++) {

if (j >= colLength) break;

if (obj1.colSpan >= colLength) break;

obj2 = document.getElementById(tb.rows[i].cells[j].id);

if (obj1.innerText == obj2.innerText) {

obj1.colSpan++;

obj2.parentNode.removeChild(obj2);

j = j - 1;

}

else {

obj1 = obj2;

j = j + obj1.rowSpan;

}

}

}

}

优化后的效果(这里只实现了合并行): 效果图如下:

代码如下:

function uniteTable(tableId,colLength) {

//colLength-- 需要合并单元格的列1开始

var tb=document.getElementById(tableId);

tb.style.display='';

var i = 0;

var j = 0;

var rowCount = tb.rows.length; // 行数

var colCount = tb.rows[0].cells.length; // 列数

var obj1 = null;

var obj2 = null;

var obj3 = null;

//为每个单元格命名

for (i = 0; i < rowCount; i++) {

for (j = 0; j < colCount; j++) {

tb.rows[i].cells[j].id = "tb__" + i.toString() + "_" + j.toString();

}

}

//合并行 (列循环)第一行第一列均从0开始

for (i = 0; i < colCount; i++) {

//如果第3,4,5列不进行合并操作

if (i == 2 || i == 3 || i == 4) continue;

obj1 = document.getElementById("tb__0_" + i.toString())

//(行循环)

for (j = 1; j < rowCount; j++) {

obj2 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

if(i == 0){//第1列全部进行合并操作

if (obj1.innerText == obj2.innerText) {//判断值是否相等

obj1.rowSpan++;//合并行

obj2.parentNode.removeChild(obj2);//移除被合并的行

} else {

obj1 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

}

}else if(i == 5){//第6列合并操作参照第2列,第二列合并了,第5列才进行合并

obj3 = document.getElementById("tb__" + j.toString() + "_" + (i-4).toString());

if (obj1.innerText == obj2.innerText && obj3 == null) {

obj1.rowSpan++;

obj2.parentNode.removeChild(obj2);

} else {

obj1 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

}

}else{//只有前一列进行了合并操作后面的才会进行合并操作

obj3 = document.getElementById("tb__" + j.toString() + "_" + (i-1).toString());

if (obj1.innerText == obj2.innerText && obj3 == null) {

obj1.rowSpan++;

obj2.parentNode.removeChild(obj2);

} else {

obj1 = document.getElementById("tb__" + j.toString() + "_" + i.toString());

}

}

}

}

}

php 合并重复数据合并单元格,通过js合并表格重复出现的数据相关推荐

  1. html如何取单元格内容,JS获取表格内指定单元格html内容的方法

    JS获取表格内指定单元格html内容的方法 本文实例讲述了JS获取表格内指定单元格html内容的方法.分享给大家供大家参考.具体如下: 下面的代码先通过表格对象的rows获得指定的行的所有单元格数组, ...

  2. 利用Python做excel文本合并(根据左侧单元格,快速合并右侧单元格内容)

    前言:昨天获得一个数据处理的小需求,比较简单,用VBA也能做,不过最近Python用的比较多,所以用Python写了,效率也很快. 需求: 有一张总表,如下图所示 需要根据左侧的工号和姓名,合并右侧获 ...

  3. xlwings 合并单元格 读取_将16家公司财务报表数据过入合并底稿表格,我只用了1分钟...

    大家好,我是刀哥.如果你是一家集团公司的财务人员,合并报表由你来做,或者你是这家集团公司外聘的独立审计师,需要你定期编制合并底稿.出具审计报告,而集团公司有多家分子公司,可能十几家,甚至几十家上百家. ...

  4. 数据合并设计_八秒搞定合并相同内容的单元格,你却加班了1小时

    Excel有一种操作相信大家都见到过,那就是对单元格区域进行合并操作.对于绝大多数人来说,合并多个单元格都是手动点击合并来操作,但是当数据量较大或者我们需要对相同内容的单元格合并的时候,这种操作就用不 ...

  5. 对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定

    Excel统计数据过程中,相信大家最不想碰到的就是合并单元格,因为合并区域会对我们的数据统计造成各种麻烦.取消单元格合并后,除第一个单元格有内容外其他的单元格都成了空值. 案例说明:如上图所示,我们需 ...

  6. php相同数据合并单元格,jQuery_基于jQuery的合并表格中相同文本的相邻单元格的代码,ONE 已经生成的数据表格大致 - phpStudy...

    基于jQuery的合并表格中相同文本的相邻单元格的代码 ONE 已经生成的数据表格大致内容如下: 地区 地区 商品代码 商品名称 数量 有效期至 距效期(月) 产品批号 规格 单位 条形码 广东 深圳 ...

  7. 个人永久性免费-Excel催化剂功能第52波-相同内容批量合并单元格,取消合并单元格并填充内容...

    在高级Excel用户群体中无比痛恨的合并单元格,在现实的表格中却阴魂不散的纠缠不断.今天Excel催化剂也来成为"帮凶",制造更多的合并单元格.虽然开发出此功能,请使用过程中务必要 ...

  8. excel单元格内容拆分_Excel批量合并相同内容的单元格

    因为我平常工作中整理数据会经常需要批量合并单元格,所以我各处学习,整理了如下批量合并相同内容单元格的方法,以下有WPS的应用截图,也有excel的应用截图,但原理是一样的,供大家参考. 在日常办公中经 ...

  9. element ui el-table单元格按需合并

    从来没有好好地有条理的整理过代码,也是因为没有信心能写好,今天心血来潮写一篇尝试一下. 问题描述 element ui 中 el-table 按需合并单元格 本文中代码举例,根据 project_na ...

最新文章

  1. geoserver安装_pgRouting教程九:使用GeoServer发布WMS/WFS接口
  2. PHP::转义与反转义函数 (POST/GET/COOKIE)
  3. Shader山下(二十一)多重变体(Multiple Variants)
  4. 阿里数据产品经理工作(总结篇):数据PD,做牛做马
  5. 零基础前端入门,真正难在哪里?简说编程思想和逻辑思维
  6. 使用事件和消息队列实现分布式事务
  7. 2015年,Web 进入移动时代
  8. NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习(二)
  9. 2008服务器操作系统安装,Windows server2008服务器安装图文教程
  10. Intel 11代全新核显出现了!好强 好乱
  11. 邯郸计算机理工学院,邯郸理工学校2021年招生简章
  12. PCB设计敷铜时的天线效应
  13. 小程序 版本管理使用教程
  14. AI绘画升温、AI写作降温,AIGC玩“变脸”
  15. 如何在Oracle官网下载旧版本的JDK
  16. 智能手表发展史:我们用过、见过和从未听说的
  17. GO+Selenium批量关注各大网站实战 2 (今日头条,批量关注)
  18. sbt的安装和应用(详细步骤)
  19. CS5266BN说明书|CS5266BN QFN48封装规格书|CS5266BN设计资料
  20. simulink笔记——DSSS直接序列扩频

热门文章

  1. 给自己的网站添加网易云音乐歌单吧^ ^
  2. PKI/CA与数字证书
  3. Hibernate - HHH000352: Unable to release batch statement
  4. 开发日记:接口开发设计
  5. Java多线程(全)学习笔记(上)
  6. 手动为linux系统添加新用户——过程详解
  7. [浪风JQuery开发]jquery最有意思的IFrame类似应用--值得深入研究
  8. LeetCode每日一题:比特位计数(No.338)
  9. JS 闭包 正则(1)
  10. 05_视图控制器_1