`
jian23cn
  • 浏览: 2313 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

js合并表格列(修改版)

阅读更多
因开发需要,须在表格中挑选对应的列进行合并。在网上找的很多代码都是一次性合并多列,无法跨列选择合并,自己小修改了一下,给需要的朋友节约点时间。
代码如下:


<html>   
<head>   
<meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">   
<title>合并表格</title>   
<script>   
///////////////////////////////////////////////   
//   功能:合并表格   
//   参数:tb--需要合并的表格ID   
//   参数:colLength--需要对前几列进行合并,比如,   
//   想合并前两列,后面的数据列忽略合并,colLength应为2   
//   缺省表示对全部列合并   
//   data:   2005.11.6   
///////////////////////////////////////////////   
function   uniteTable(tb,objCol){   
//   检查表格是否规整   
if   (!checkTable(tb))   return;   
var   i=0;   
var   j=0;   
var   rowCount=tb.rows.length; //   行数   
var   colCount=tb.rows[0].cells.length; //   列数   
var   obj1=null;   
var   obj2=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   (t=0;t<objCol.length;t++)
	{   
		i=objCol[t];		
		obj1=document.getElementById("tb__0_"+i.toString())   
		for   (j=1;j<rowCount;j++)
		{   
			obj2=document.getElementById("tb__"+j.toString()+"_"+i.toString());   
			if   (obj1.innerHTML   ==   obj2.innerHTML)//修改了原来的innerText
			{   
				obj1.rowSpan++;   
				obj2.parentNode.removeChild(obj2);   
			}
			else
			{   
				obj1=document.getElementById("tb__"+j.toString()+"_"+i.toString());   
			}   
		} 		  
	}   
}    
    
/////////////////////////////////////////   
//   功能:检查表格是否规整   
//   参数:tb--需要检查的表格ID   
//   data:   2005.11.6   
/////////////////////////////////////////   
function   checkTable(tb){   
if   (tb.rows.length==0)   return   false;   
if   (tb.rows[0].cells.length==0)   return   false;   
for   (var   i=0;i<tb.rows.length;i++){   
if   (tb.rows[0].cells.length   !=   tb.rows[i].cells.length)   return   false;   
}   
return   true;   
}   
</script>   
</head>   
    
<body>   
<table   width="400"   border="1"   id="table1">   
      <tr>   
          <td>a</td>   
          <td>for</td>   
          <td>100</td>   
          <td>200</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>for</td>   
          <td>150</td>   
          <td>230</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>150</td>   
          <td>200</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>300</td>   
          <td>240</td>   
      </tr>   
      <tr>   
          <td>a</td>   
          <td>if</td>   
          <td>320</td>   
          <td>240</td>   
      </tr>   
</table>   
<br>   
<input   type="button"   value="合并表格"   onClick="uniteTable(table1,Array(0,1,3))">   
</body>  
分享到:
评论

相关推荐

    EXTjs4.0以下合并表格

    在合并表格时,可能需要修改模板以实现合并效果。 6. **Ext.util.Renderable**: 如果选择扩展EXTjs的基本组件,可能需要深入理解`Ext.util.Renderable`类,它是EXTjs中所有可视组件的基类,提供了渲染和布局的基础...

    spreadjs_包含合并列头的数据绑定-demo (1).zip

    - 使用SpreadJS API设置合并的列头,这可能涉及到对工作表的修改和单元格的合并操作。 - 实现数据绑定,确保当数据源更改时,电子表格会自动更新,反之亦然。 - 使用图表模块创建图表,以便直观地呈现数据。 - 通过...

    EasyUI 1.3.1动态表格列示例

    在1.3.1版本中,动态表格列的实现是一个常见的需求,这涉及到表格的灵活性和可扩展性,使用户可以根据不同的数据或者权限展示不同的列。 动态表格列的实现通常包括以下几个关键步骤: 1. **数据准备**:首先,你...

    ExtJS GRID单元格合并

    通过修改`cellTpl`,我们可以实现合并单元格的样式。例如,我们可以添加一个条件判断来决定是否应用合并样式: ```javascript viewConfig: { cellTpl: '&lt;td class="{tdCls}" {rowspanAttr} {colspanAttr}&gt;{value}...

    JS版仿EXCEL表格插件--智表(ZCELL)V1.3.1版本

    **JS版仿EXCEL表格插件--智表(ZCELL)V1.3.1版本** 智表(ZCELL)是一款专为Web应用设计的纯JavaScript实现的表格控件,其核心目标是提供与Microsoft Excel类似的用户体验。这款控件完全基于浏览器运行,无需任何...

    excel转换为HTML 支持合并单元格

    在JavaScript的xlsx库中,可以使用`XLSX.readFile`函数解析Excel,`SheetJS`提供了一些方法来处理合并信息。 转换过程如下: 1. **读取Excel文件**:使用合适的库读取Excel文件,将其内容转换为数据结构,如pandas...

    VUE导出Excel,两种方法,方法二带样式:文字居中,自动换行,列宽设置,单元格合并,冻结表头等

    SheetJS是一个强大的JavaScript库,它允许开发者读写多种电子表格文件格式,包括XLSX和XLSM。然而,SheetJS的免费版并不支持样式设置,这意味着你不能直接设置单元格的对齐方式、换行或者调整列宽等。这对于需要格式...

    flexgrid表格控件jsp版本

    1. **多列布局**:FlexGrid可以灵活地设置表格的列数,支持自定义列宽和列头,方便展示复杂的数据结构。 2. **数据绑定**:它可以与后台数据库或其他数据源绑定,实时显示和更新数据,支持多种数据格式,如JSON、...

    grid表格绘制

    Grid表格是一种用于组织和展示数据的结构,它通常由行和列组成,允许用户以清晰、有组织的方式查看大量信息。在本例中,提到的是一个针对iPad优化的表格绘制方法,这可能涉及到移动设备上的响应式布局和触摸交互。 ...

    eWebEditor7.3官方原版修改版

    5. **表格处理**:能够创建、编辑表格,包括调整行、列数量,合并单元格,设置边框样式等。 6. **多媒体支持**:可以插入音频和视频,满足多媒体内容的展示需求。 7. **HTML源码编辑**:提供查看和编辑HTML源码的...

    vxe-table vue table 表格组件功能

    vxe-table是Vue.js中一款功能强大的表格组件,它为用户提供了丰富的表格操作功能,可以大大提高开发中的表格处理效率。vxe-table组件支持多种特性,包括但不限于基础展示、尺寸调整、样式定制、交互功能和数据处理等...

    js生成excel样式文件xlsx.full.min.js

    JSON对象可以表示单元格、行、列以及整个工作表,从而让我们能够轻松地在JavaScript中构建和修改Excel内容。 对于样式部分,`xlsx-style`模块提供了对Excel单元格样式的支持,包括字体、颜色、边框、填充、对齐方式...

    flexigrid表格插件

    在原版flexigrid中,可能由于计算误差或浏览器兼容性问题,当用户尝试拖动列宽调整表格列的大小时,可能导致列的位置错位,影响了整体的视觉效果和交互体验。您修复的版本则解决了这个问题,确保在调整列宽后,各列...

    dhtmlxGantt 介绍以及使用说明

    2. **丰富的 API**:提供了大量的 API 接口,允许开发者灵活地控制和修改甘特图的各项功能。 3. **高度可定制**:用户可以根据需求调整甘特图的颜色、布局等外观属性,以及各种行为设置。 4. **事件处理**:支持多种...

    JS 导出的一些资源 ,可共同学习

    在处理表格数据时,可能需要利用DOM API来创建、查找或修改表格元素,如行、列和单元格。 接下来,"jszip.js" 是一个JavaScript库,用于处理ZIP文件。它允许我们读取、创建和编辑ZIP文件。在纯前端环境中,如果需要...

    vxe-table vue表格解决方案 v4.5.20.zip

    《vxe-table:Vue.js表格解决方案深度解析》 在当今的Web开发中,表格作为一种重要的数据展示和交互组件,被广泛应用于各种业务场景。vxe-table是基于Vue.js框架的一个强大且灵活的表格解决方案,其版本v4.5.20在...

    编辑表格对象

    后端Node.js可借助pandas-js或js-xlsx处理表格数据。 6. **数据处理**:在编辑表格对象时,通常会涉及数据清洗(去除空值、处理异常值)、数据转换(类型转换、聚合计算)、数据可视化(图表制作)等步骤。这些操作...

    基于jquery的合并table相同单元格的插件(精简版)

    这里介绍的是一款基于jQuery的插件,能够自动合并表格中相同内容的单元格,实现高效的数据整理。 首先,我们来看看插件的运行效果。原表格包含四列:col0、col1、col2和col3。表格中部分城市的名称(如SuZhou、...

    element-ui版本号2.15.12的包

    在这个版本中,重点提及的是对`el-table`组件的修改,特别是关于表格合并以及处理合并后hover样式的优化。 `el-table`是Element UI中的一个核心组件,用于展示结构化的数据,比如报表或统计信息。在实际应用中,...

    类似于Excel的表格控件

    Handsontable是一个流行的开源JavaScript库,它提供了一个强大的表格组件,能够满足上述提到的许多功能。版本0.20.1可能包含该库的源代码、文档和示例,帮助开发者快速集成和定制。而`table-demo.zip`可能包含了一些...

Global site tag (gtag.js) - Google Analytics