最近有用户提出“实现合并相同内容连续单元格”的需求,例如:如果一列中的连续单元格拥有相同的值,即合并为一个单元格进行显示。本篇文章将阐述如何使用 Cell 客户端属性 rowSpancolSpan 来实现这个功能。

下面这个例子主要是通过循环某列中的所有行,按照相邻单元格的值进行分组。

  1: <script type="text/javascript">
  2:      function Button2_onclick()
  3:      {
  4:         var spread = document.getElementById("FpSpread1");
  5:         var rc = spread.GetTotalRowCount();
  6:         var r = 0;
  7:         while (r != rc - 1)
  8:         {
  9:             r1 = r;
 10:             var inc = 0;
 11:             while (r1 != -1)
 12:             {
 13:                var val1 = spread.GetValue(r1, 1);
 14:                var val2 = spread.GetValue(r1 + 1, 1);
 15:                if (val1 == val2)
 16:                {
 17:                   inc++;
 18:                   r1++;
 19:                }
 20:                else
 21:                {
 22:                   var cell = spread.GetCellByRowCol(r, 1);
 23:                   cell.rowSpan = inc + 1;
 24:                   r = r1 + 1;
 25:                   r1 = -1;
 26:                 }
 27:              }
 28:         }
 29:      alert('Cells with same values merged');
 30:   }
 31: </script>

 

效果图:

FOutput

Demo 下载

C# 示例: 点击下载

 

VB.NET 示例: 点击下载