`
langzhiwang888
  • 浏览: 182100 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

JS自动合并表格

 
阅读更多

js合并单元格.html

Html代码  收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>JS合并表格</title>  
  6. <style>  
  7. * {  
  8.     font-size:12px  
  9. }  
  10.   
  11. table{ margin-top:5px;}  
  12.   
  13. .table1 {  
  14.     border-collapse:collapse;  
  15.     width:600px;  
  16.     border:1px solid #7A90A8;  
  17.     border-top:3px;  
  18. }  
  19. td {  
  20. padding-left:3px;  
  21. text-align:left;  
  22. }  
  23.   
  24. caption{  
  25. background:#9DACBF;  
  26. font-weight:600;  
  27. padding:4px;  
  28. color:#FFF; }  
  29. </style>  
  30. </head>  
  31.   
  32. <body>  
  33.   
  34. <table id="ii" class="table1" border="1" align="center">  
  35. <caption>2010年北京市医院分布情况</caption>  
  36.   <tr>  
  37.     <td>所在区</td>  
  38.     <td>二级医院数量</td>  
  39.     <td>三级医院数量</td>  
  40.     <td>三甲级医院数量</td>  
  41.     <td>四级医院数量</td>  
  42.   </tr>  
  43.   <tr>  
  44.     <td>海淀区</td>  
  45.     <td>8</td>  
  46.     <td>54</td>  
  47.     <td>14</td>  
  48.     <td>8</td>  
  49.   </tr>  
  50.   <tr>  
  51.     <td>海淀区</td>  
  52.     <td>15</td>  
  53.     <td>64</td>  
  54.     <td>36</td>  
  55.     <td>76</td>  
  56.   </tr>  
  57.   <tr>  
  58.     <td>朝阳区</td>  
  59.     <td>5</td>  
  60.     <td>64</td>  
  61.     <td>69</td>  
  62.     <td>23</td>  
  63.   </tr>  
  64.   <tr>  
  65.     <td>朝阳区</td>  
  66.     <td>17</td>  
  67.     <td>54</td>  
  68.     <td>43</td>  
  69.     <td>18</td>  
  70.   </tr>  
  71.   <tr>  
  72.     <td>朝阳区</td>  
  73.     <td>73</td>  
  74.     <td>35</td>  
  75.     <td>45</td>  
  76.     <td>72</td>  
  77.   </tr>  
  78. </table>  
  79.   
  80.   
  81.   
  82. <script type="text/javascript">  
  83. function tableSpan(tb1)  
  84. {  
  85.     //合并行  
  86.     //列  
  87.     for(var i=tb1.rows[0].childNodes.length-1;i>=0;i--)  
  88.     {  
  89.         //行  
  90.         for(var j=tb1.rows.length-1;j>0;j--)  
  91.         {  
  92.             //当前单元格与上一单元格比较  
  93.             if(tb1.rows[j].childNodes[i].innerHTML==tb1.rows[j-1].childNodes[i].innerHTML)  
  94.             {  
  95.                 tb1.rows[j-1].childNodes[i].rowSpan += tb1.rows[j].childNodes[i].rowSpan;  
  96.                 tb1.rows[j].removeChild(tb1.rows[j].childNodes[i]);  
  97.             }  
  98.         }  
  99.     }  
  100.       
  101.     //合并列  
  102.     //行  
  103.     for(var i=tb1.rows.length-1;i>=0;i--)  
  104.     {   break;//不合并列  
  105.         //列  
  106.         for(var j=tb1.rows[i].childNodes.length-1;j>0;j--)  
  107.         {  
  108.             //当前单元格与左一单元格比较  
  109.             if(tb1.rows[i].childNodes[j].innerHTML==tb1.rows[i].childNodes[j-1].innerHTML)  
  110.             {  
  111.                 tb1.rows[i].childNodes[j-1].colSpan += tb1.rows[i].childNodes[j].colSpan;  
  112.                 tb1.rows[i].removeChild(tb1.rows[i].childNodes[j]);  
  113.             }  
  114.         }  
  115.     }  
  116. }  
  117. tableSpan(ii);  
  118. </script>  
  119. </body>  
  120. </html>  

 

合并效果,将所在区相邻且字符同的都合并了

 

2010年北京市医院分布情况

所在区 二级医院数量 三级医院数量 三甲级医院数量 四级医院数量
海淀区 8 54 14 8
15 64 36 76
朝阳区 5 69 23
17 54 43 18
73 35 45

72

 

 

 

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

<title>无标题文档 </title> 

</head> 

 

<body> 

<table width="100%" border="1" cellspacing="0" cellpadding="0" id="tab"> 

  <tr> 

    <td>张三 </td> 

    <td>男 </td> 

    <td>22 </td> 

    <td>数学 </td> 

    <td>90 </td> 

  </tr> 

   <tr> 

    <td>张三 </td> 

    <td>男 </td> 

    <td>22 </td> 

    <td>数学 </td> 

    <td>90 </td> 

  </tr> 

  <tr> 

    <td>张三 </td> 

    <td>男 </td> 

    <td>22 </td> 

    <td>语文 </td> 

    <td>70 </td> 

  </tr> 

  <tr> 

    <td>张三 </td> 

    <td>女 </td> 

    <td>22 </td> 

    <td>英语 </td> 

    <td>60 </td> 

  </tr> 

  <tr> 

    <td>李四 </td> 

    <td>女 </td> 

    <td>22 </td> 

    <td>数学 </td> 

    <td>60 </td> 

  </tr> 

  <tr> 

    <td>李四 </td> 

    <td>女 </td> 

    <td>19 </td> 

    <td>语文 </td> 

    <td>60 </td> 

  </tr> 

  <tr> 

    <td>王五 </td> 

    <td>男 </td> 

    <td>19 </td> 

    <td>英语 </td> 

    <td>60 </td> 

  </tr> 

</table> 

 

<script type="text/javascript">

window.onload = function(){

var tab = document.getElementById("tab");

var maxCol = 3, val, count, start;

 

for(var col = maxCol-1; col >= 0 ; col--){

count = 1;

val = "";

for(var i=0; i<tab.rows.length; i++){

if(val == tab.rows[i].cells[col].innerHTML){

count++;

}else{

if(count > 1){ //合并

start = i - count;

tab.rows[start].cells[col].rowSpan = count;

for(var j=start+1; j<i; j++){

tab.rows[j].cells[col].style.display = "none";

}

count = 1;

}

val = tab.rows[i].cells[col].innerHTML;

}

}

if(count > 1 ){ //合并,最后几行相同的情况下

start = i - count;

tab.rows[start].cells[col].rowSpan = count;

for(var j=start+1; j<i; j++){

tab.rows[j].cells[col].style.display = "none";

}

}

}

};

 

</script>

</body> 

</html>

 

分享到:
评论

相关推荐

    原生JS实现HTML- TABLE 自动行合并插件

    类功能描述:该插件生成一个具有行合并的列表数据,合并例由开发者指定。 开发者提供已排序的数据列表以及需要合并行的列名即可,无需后端二次处理数据。 该类以纯原生JS编写,无需引入任何第三方库。 调用方法:...

    js自动合并相同单元格Demo

    `js自动合并相同单元格Demo`是一个关于如何在JavaScript中实现动态生成表格并自动合并相同单元格的示例。这个插件尤其适用于数据量较大且存在重复信息的场景,可以有效提升表格的可读性和美观性。 首先,我们要理解...

    jquery.table.rowspan.js 表格自动合并单元格插件

    `jQuery.table.rowspan.js`是一个专为解决表格中单元格自动合并问题的jQuery插件。这个插件允许开发者在前端轻松处理复杂的表格布局,提高用户体验,同时也减轻了服务器端的计算压力。 ### 插件原理 `rowspan`属性...

    table-rowspan表格自动合并单元格插件

    通过这个"table-rowspan表格自动合并单元格插件",开发者可以轻松地实现复杂表格布局的动态管理,提升用户体验,同时减轻了手动调整表格的繁琐工作。这个插件的使用涉及到了HTML、CSS和JavaScript的综合应用,是前端...

    JS 实现Table相同行的单元格自动合并示例代码

    在HTML文档中使用JavaScript来自动合并表格中相同行的单元格是一种常见的前端开发技术。这种技术可以提高页面的可读性,尤其是在处理具有相同值的重复数据时。上述代码示例提供了一种简单而有效的方法来实现这一功能...

    WPS的js宏写的Excel文件合并工具,通过文件对话框选择文件来合并表格

    为了解决这一问题,WPS Office提供了使用JavaScript(简称JS)宏编程的方式来自动化合并Excel文件的功能。本文将详细介绍一个基于WPS Excel的JS宏编写的文件合并工具,帮助用户提升工作效率。 首先,这个工具的核心...

    可编辑的,单元格自动合并的表格

    - `table.js`:这是JavaScript文件,很可能包含了实现表格编辑和单元格自动合并的核心逻辑。用户可以通过阅读和分析这个文件来了解具体实现方法。 综合以上信息,这个资源对于想要学习Web表格编辑和单元格合并功能...

    利用js合并table相同内容单元格并js方式自动生成

    利用js合并table相同内容单元格并js方式自动生成,把文本内容复制进js中,应该就知道大概咋用了

    layui table合并单元格.zip

    另外,"2layui数据表格跨行自动合并 - 合并行.url" 和 "3layui 动态表格之合并单元格 - 合并列.url" 很可能是指向相关教程或示例的链接,分别指导如何实现跨行和跨列的合并。在跨列合并中,可能涉及到对每个单元格的...

    将HtmlTable 导出为Execl文件,支持合并单元格、合并行,无需Office支持

    在JavaScript或服务器端语言(如ASP.NET、PHP或Java)中,可以使用DOM解析库来遍历HTML表格,获取单元格的内容、样式信息,以及合并信息。对于合并单元格和合并行,这涉及到跟踪单元格的范围和行列索引,确保在Excel...

    列表多行多列合并单元格

    例如,如果你的列表有三列,但某些情况下需要将第一列和第二列合并,那么可以先生成不合并的表格,然后根据合并规则找到需要合并的单元格,设置其`colspan`属性。 在实际应用中,可能还会遇到一些复杂情况,如: 1...

    富文本编辑器以及表格操作,可拉伸单元格宽度、增加行、增加列、合并单元格

    富文本编辑器是一种常见的网页和应用中的文本输入组件,它允许用户在编辑环境中进行复杂的文本格式设置,如字体、字号、颜色、对齐方式等,同时支持插入图片、链接、表格等多种元素。在IT领域,富文本编辑器是构建...

    LayUiTable表单相同参数的单元格合并

    当表格数据中存在相同参数时,我们可以将这些参数对应的单元格合并为一个,减少重复信息,增强视觉效果。下面我们将详细探讨如何操作。 1. **理解LayUI Table的基础使用** 在使用单元格合并功能前,我们需要了解...

    vue+elementUI实现动态表格合并单元格.zip

    在本项目中,"vue+elementUI实现动态表格合并单元格.zip" 提供了一个使用 Vue.js 框架和 Element UI 组件库构建的动态表格应用。Vue.js 是一款轻量级的前端JavaScript框架,它提供了响应式的数据绑定和组件化功能,...

    JavaScript 自动在表格前面增加序号

    本文将详细介绍如何使用JavaScript自动在表格前面增加序号。 首先,我们需要创建一个符合设计样式的表格。在CSS样式表中,我们定义了表格`.index_tab`的样式,包括宽度、边框合并、边框宽度、内边距以及外边距。...

    表格拆分合并demo.zip

    在实际应用中,Vue.js的响应式特性使得表格内容的变化能够自动更新,因此,当数据源改变时,表格的拆分和合并也会相应地动态更新。此外,Vue的组件化设计允许我们将此功能封装为可复用的模块,提高代码的可维护性和...

    Gridcontrol合并表头、合并行、冻结列

    可以通过设置`GridView.OptionsView.ShowGroups`为`true`来启用分组功能,然后对数据源进行分组操作,GridControl会自动合并相同值的行。如果需要自定义合并规则,可以重写`GridView.OnRowCellMerge`事件,根据需求...

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

    SpreadJS是一个强大的JavaScript电子表格组件,它允许开发者在Web应用中实现类似于Excel的功能。 描述中的“spreadjs_包含合并列头的数据绑定-demo (1)”进一步强调了这个示例的主要特性,即数据绑定和合并列头。在...

    javascript合并单元格

    - **动态数据处理**:在用户添加或删除行时自动合并单元格。 - **错误处理**:增加对无效输入的异常处理机制。 - **性能优化**:对于大型表格,考虑采用更高效的算法减少计算时间。 总之,通过上述代码解析,我们...

    【JavaScript源代码】Vue Elenent实现表格相同数据列合并.docx

    完成上述步骤后,运行代码,表格就会根据指定的列(这里是第一列的 `ENTERNAME` 字段)自动合并相同数据的单元格。你可以根据实际需求调整代码,以处理其他列或更多的合并逻辑。 在实际项目中,可能会有更多复杂的...

Global site tag (gtag.js) - Google Analytics