Spread ASP.net 通过前端实现单元格合并(Cell Merging)

发布时间:2014/01/16 00:01 发布者:roger.wang

返回博客中心

对具有相同值的单元格合并,Spread for ASP.Net提供了在后端代码实现:

  1: // Create some content in two cells.
  2: FpSpread1.ActiveSheetView.Cells[1,1].Text = "These six cells are spanned.";
  3: FpSpread1.ActiveSheetView.Cells[2,2].Text = "This is text in 2,2.";
  4: // Span six cells including the ones with different content.
  5: FpSpread1.ActiveSheetView.AddSpanCell(1, 1, 2, 3);

 

那么能否通过前端实现单元格合并呢? 这个博客介绍如何能够利用Spread单元格的ROWSPAN属性,来合并单元格: 即,在客户端把相同的值的单元格进行合并。

下面是一个简单的JavaScript函数,遍历行找到具有相同值的连续行的特定列。一旦我们得到这个单元格的范围,可简单地设定第一个单元格的RowSpan属性, 这会创建一个跨区单元格,然而看起来好像是单元格具有相同值已经被合并。

  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>

 

Spread_JS_Merge

源码:


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网