php 合并重复数据合并单元格,通过js合并表格重复出现的数据
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合并表格重复出现的数据相关推荐
- html如何取单元格内容,JS获取表格内指定单元格html内容的方法
JS获取表格内指定单元格html内容的方法 本文实例讲述了JS获取表格内指定单元格html内容的方法.分享给大家供大家参考.具体如下: 下面的代码先通过表格对象的rows获得指定的行的所有单元格数组, ...
- 利用Python做excel文本合并(根据左侧单元格,快速合并右侧单元格内容)
前言:昨天获得一个数据处理的小需求,比较简单,用VBA也能做,不过最近Python用的比较多,所以用Python写了,效率也很快. 需求: 有一张总表,如下图所示 需要根据左侧的工号和姓名,合并右侧获 ...
- xlwings 合并单元格 读取_将16家公司财务报表数据过入合并底稿表格,我只用了1分钟...
大家好,我是刀哥.如果你是一家集团公司的财务人员,合并报表由你来做,或者你是这家集团公司外聘的独立审计师,需要你定期编制合并底稿.出具审计报告,而集团公司有多家分子公司,可能十几家,甚至几十家上百家. ...
- 数据合并设计_八秒搞定合并相同内容的单元格,你却加班了1小时
Excel有一种操作相信大家都见到过,那就是对单元格区域进行合并操作.对于绝大多数人来说,合并多个单元格都是手动点击合并来操作,但是当数据量较大或者我们需要对相同内容的单元格合并的时候,这种操作就用不 ...
- 对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定
Excel统计数据过程中,相信大家最不想碰到的就是合并单元格,因为合并区域会对我们的数据统计造成各种麻烦.取消单元格合并后,除第一个单元格有内容外其他的单元格都成了空值. 案例说明:如上图所示,我们需 ...
- php相同数据合并单元格,jQuery_基于jQuery的合并表格中相同文本的相邻单元格的代码,ONE
已经生成的数据表格大致 - phpStudy...
基于jQuery的合并表格中相同文本的相邻单元格的代码 ONE 已经生成的数据表格大致内容如下: 地区 地区 商品代码 商品名称 数量 有效期至 距效期(月) 产品批号 规格 单位 条形码 广东 深圳 ...
- 个人永久性免费-Excel催化剂功能第52波-相同内容批量合并单元格,取消合并单元格并填充内容...
在高级Excel用户群体中无比痛恨的合并单元格,在现实的表格中却阴魂不散的纠缠不断.今天Excel催化剂也来成为"帮凶",制造更多的合并单元格.虽然开发出此功能,请使用过程中务必要 ...
- excel单元格内容拆分_Excel批量合并相同内容的单元格
因为我平常工作中整理数据会经常需要批量合并单元格,所以我各处学习,整理了如下批量合并相同内容单元格的方法,以下有WPS的应用截图,也有excel的应用截图,但原理是一样的,供大家参考. 在日常办公中经 ...
- element ui el-table单元格按需合并
从来没有好好地有条理的整理过代码,也是因为没有信心能写好,今天心血来潮写一篇尝试一下. 问题描述 element ui 中 el-table 按需合并单元格 本文中代码举例,根据 project_na ...
最新文章
- geoserver安装_pgRouting教程九:使用GeoServer发布WMS/WFS接口
- PHP::转义与反转义函数 (POST/GET/COOKIE)
- Shader山下(二十一)多重变体(Multiple Variants)
- 阿里数据产品经理工作(总结篇):数据PD,做牛做马
- 零基础前端入门,真正难在哪里?简说编程思想和逻辑思维
- 使用事件和消息队列实现分布式事务
- 2015年,Web 进入移动时代
- NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习(二)
- 2008服务器操作系统安装,Windows server2008服务器安装图文教程
- Intel 11代全新核显出现了!好强 好乱
- 邯郸计算机理工学院,邯郸理工学校2021年招生简章
- PCB设计敷铜时的天线效应
- 小程序 版本管理使用教程
- AI绘画升温、AI写作降温,AIGC玩“变脸”
- 如何在Oracle官网下载旧版本的JDK
- 智能手表发展史:我们用过、见过和从未听说的
- GO+Selenium批量关注各大网站实战 2 (今日头条,批量关注)
- sbt的安装和应用(详细步骤)
- CS5266BN说明书|CS5266BN QFN48封装规格书|CS5266BN设计资料
- simulink笔记——DSSS直接序列扩频
热门文章
- 给自己的网站添加网易云音乐歌单吧^ ^
- PKI/CA与数字证书
- Hibernate - HHH000352: Unable to release batch statement
- 开发日记:接口开发设计
- Java多线程(全)学习笔记(上)
- 手动为linux系统添加新用户——过程详解
- [浪风JQuery开发]jquery最有意思的IFrame类似应用--值得深入研究
- LeetCode每日一题:比特位计数(No.338)
- JS 闭包 正则(1)
- 05_视图控制器_1