精华内容
下载资源
问答
  • el-element中el-table合并单元格 合并列。无限制列合并。通过循环数据源数据获取该列需要合并的行数。
  • 列表多行多列合并单元格,对列表进行多列合并,在开发WEB报表中非常有用
  • * datagrid 自定义合并单元格 * @param $this 表格选择器 * @param field_arr 合并字段 * @param judge 值不相同不合并 */ customMergeCells: function($this, field_arr, judge) { var...

    自定义方法: 

    /**
         * datagrid 自定义合并单元格
         * @param $this 表格选择器
         * @param field_arr 合并列字段
         * @param judge 值不相同不合并
         */
        customMergeCells: function($this, field_arr, judge) {
            var rows = $this.datagrid("getRows");
            if ( (typeof (field_arr) === "undefined" || field_arr === "" || field_arr == null || field_arr === "null")
                || (typeof (field_arr) === "undefined" || field_arr === "" || field_arr == null || field_arr === "null")) {
                return;
            }
            for (var i = 1; i < rows.length; i++) {
                for (var k = 0; k < field_arr.length; k++) {
                    var field = field_arr[k]; // 要排序的字段
                    if(rows[i][field] === rows[i-1][field]){ // 相邻的上下两行
                        if(!(typeof (judge) === "undefined" || judge === "" || judge == null || judge === "null")){
                            if(rows[i][judge] !== rows[i-1][judge]){
                                continue;
                            }
                        }
                        var rowspan = 2;
                        for (var j = 2; i-j >= 0; j++) { // 判断上下多行内容一样
                            if(rows[i][field] !== rows[i-j][field]){
                                break;
                            }else{
                                if(!(typeof (judge) === "undefined" || judge === "" || judge == null || judge === "null")){
                                    if(rows[i][judge] !== rows[i-j][judge]){
                                        break;
                                    }
                                }
                                rowspan = j+1;
                            }
                        }
                        $this.datagrid("mergeCells",{ // 合并
                            index: i-rowspan+1,
                            field: field,
                            rowspan: rowspan
                        });
                    }
                }
            }
        }

    使用实例: 

    onLoadSuccess: function(data) {
                        if (data.rows && data.rows.length > 0) {
                            // 合并单元格
                            top.$.tools.customMergeCells($(this), ["itemName", "developUnitName"], "itemName");
                        }
                    },

    效果图:

    展开全文
  • 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子)和 GridView多行多列合并单元格(指定列合并)。今天继续再添加一些功能,首先看下图: 左边是原始数据的显示,右边是应用合并列之后...

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    去年的时候,我写了两篇文章:  GridView多行多列合并单元格(完整代码和例子)GridView多行多列合并单元格(指定列合并)。今天继续再添加一些功能,首先看下图:

    gridview-merge-cell-01

    左边是原始数据的显示,右边是应用合并列之后的效果。

    从图中可以看到,二级指标有两列,有的行中两列的内容一样,有的则不一样,如果实现如右图所示,看起来效果会更好一些。下面就着手实现这个功能,我的实现原理很简单,就是遍历GridView的行和遍历行中的单元格,如果单元格的前一列和当前列的内容相同就合并这两列。下面是具体实现的代码,上面有注释,应该很容易理解。

       1:          /// <summary>
       2:          /// 和并列
       3:          /// </summary>
       4:          /// <param name="gv">要合并的GridView</param>
       5:          /// <param name="startCol">开始列的索引</param>
       6:          /// <param name="endCol">结束列的索引</param>
       7:          /// <param name="containHeader">是否合并表头,默认不合并</param>
       8:          public static void MergeColumn(GridView gv, int startCol, int endCol, bool containHeader = false)
       9:          {
      10:              if (containHeader)
      11:              {
      12:                  BLRowCells(gv.HeaderRow, startCol, endCol);
      13:              }
      14:              foreach (GridViewRow row in gv.Rows)
      15:              {
      16:                  BLRowCells(row, startCol, endCol);
      17:              }
      18:          }
      19:   
      20:          /// <summary>
      21:          /// 遍历GridViewRow中的单元格
      22:          /// </summary>
      23:          /// <param name="row">要遍历的行</param>
      24:          /// <param name="start">开始索引</param>
      25:          /// <param name="end">结束索引</param>
      26:          private static void BLRowCells(GridViewRow row, int start, int end)
      27:          {
      28:              //从开始索引的下一列开始
      29:              for (int i = start + 1; i <= end; i++)
      30:              {
      31:                  //当前单元格
      32:                  TableCell currCell = row.Cells[i];
      33:                  //前一个单元格
      34:                  TableCell prevCell = row.Cells[i - 1];
      35:                  if (!string.IsNullOrEmpty(currCell.Text) && !string.IsNullOrEmpty(prevCell.Text))
      36:                  {
      37:                      if (currCell.Text == prevCell.Text)
      38:                      {
      39:                          currCell.ColumnSpan = prevCell.ColumnSpan < 1 ? 2 : prevCell.ColumnSpan + 1;
      40:                          prevCell.Visible = false;
      41:                      }
      42:                  }
      43:              }
      44:          }

    本篇文章作为前两篇文章的续文,内容相对来说简单一些,不过有需要合并GridView单元格的朋友,希望这三篇文章能够起到帮助作用!

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    转载于:https://www.cnblogs.com/nianming/p/3268981.html

    展开全文
  • 上周写了一篇GridView多行多列合并单元格(完整代码和例子),实现的方法有很多不足之处,比如只能合并连续的列,不支持模板列。在今天的文章里,首先来解决第一个不足。 解决这个问题的思路并不难,现有的代码已经...

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    上周写了一篇GridView多行多列合并单元格(完整代码和例子),实现的方法有很多不足之处,比如只能合并连续的列,不支持模板列。在今天的文章里,首先来解决第一个不足。

    解决这个问题的思路并不难,现有的代码已经解决了连续列的合并,合并指定的列只需将要合并的列按照顺序传递给合并的方法,就OK了!下面我给出合并指定列的代码:

       1:  /// <summary>
       2:  /// 合并GridView单元格
       3:  /// </summary>
       4:  /// <param name="gv">要合并的GridView</param>
       5:  /// <param name="cols">指定的列,要按照顺序传入</param>
       6:  public static void MergeRow(GridView gv, params int[] cols)
       7:  {
       8:      RowArg init = new RowArg()
       9:      {
      10:          StartRowIndex = 0,
      11:          EndRowIndex = gv.Rows.Count - 2
      12:      };
      13:      for (int i = 0; i < cols.Length; i++)
      14:      {
      15:          if (i > 0)
      16:          {
      17:              List<RowArg> list = new List<RowArg>();
      18:              //从第二列开始就要遍历前一列
      19:              TraversesPrevCol(gv, cols[i - 1], list);
      20:              foreach (var item in list)
      21:              {
      22:                  MergeRow(gv, cols[i], item.StartRowIndex, item.EndRowIndex);
      23:              }
      24:          }
      25:          //合并开始列的行
      26:          else
      27:          {
      28:              MergeRow(gv, i, init.StartRowIndex, init.EndRowIndex);
      29:          }
      30:      }
      31:  }

    上一篇文章最后,我写了一个简单的例子,在这个例子中,如下图(左边)所示,合并了前四列,第一列是张三,第二列是张三的工资项:应发工资和五险一金,第三列分别是应发工资的子项:基本工资、奖金和加班,五险一金的子项:医疗保险和住房公积金。第四列基本工资:1月,奖金:1月,加班:1月… 正常来说,第四列都是1月的,应该都合并成一块。使用连续列合并的方法完成这个问题,可以将列的顺序进行调整,但是现在要求不能调整列的顺序,那么就只能按照指定列合并了。

    www.tnmblogs.com

    完成上图中间的合并格式,只需在GridView绑定了数据之后,调用本文开始的方法,传入列的顺序0,1,3,2,完成右边图的合并格式,只需传入列的顺序0,3,1,2。

       1:  //左边图
       2:  MergeGridViewCell.MergeRow(Gridview1, 0, 3);
       3:  //中间图
       4:  MergeGridViewCell.MergeRow(Gridview1, 0, 1, 3, 2);
       5:  //右边图
       6:  MergeGridViewCell.MergeRow(Gridview1, 0, 3, 1, 2);

    最后说明一下,本篇文章是在上一篇文章的基础上完成的,如果对此感兴趣的,可以先阅读上一篇文章

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    展开全文
  • 获取行,,单元格,合并后的合并单元格,并设置颜色 /// /// 获取行,,单元格,合并后的合并单元格,并设置颜色 /// public void CellInfo() { ///清除所有行,合并单元格,扩展单元格,等 ...

    获取行,列,单元格,合并后的合并单元格,并设置颜色


         /// <summary>
            /// 获取行,列,单元格,合并后的合并单元格,并设置颜色
            /// </summary>
            public void CellInfo()
            {
    
    
                ///清除所有行,列,合并单元格,扩展单元格,等
                dataexcel1.Clear();
                ///初始化默认行,列
                dataexcel1.Init();
    
                //获取行 通过集合获取行时不会自动创建行 
                IRow row = dataexcel1.Rows[5];
                if (row == null)
                {
                    row = dataexcel1.ClassFactory.CreateDefaultRow(dataexcel1, 5);
                    dataexcel1.Rows.Add(row);
                }
                row.BackColor = Color.RosyBrown;
    
                //获取行 通过GetRow函数获取行会自动创建行 
                row = dataexcel1.GetRow(6);
                row.BackColor = Color.RoyalBlue;
    
    
                //获取行 通过GetRow函数获取行会自动创建行 
                row = dataexcel1.GetRow(1);
                row.Height = 30;
                row.BackColor = Color.RoyalBlue;
    
    
                //获取行 通过GetRow函数获取行会自动创建行 
                row = dataexcel1.GetRow(2);
                row.Height = 30;
                row.BackColor = Color.RoyalBlue;
    
                //获取列 通过集合获取列时不会自动创建列
                IColumn column = dataexcel1.Columns[9];
                if (column == null)
                {
                    column = dataexcel1.ClassFactory.CreateDefaultColumn(dataexcel1, 9);
                    dataexcel1.Columns.Add(column);
                }
                column.BackColor = Color.SandyBrown;
                column.Width = 120;
    
                //获取行 通过GetRow函数获取行会自动创建行 
                column = dataexcel1.GetColumn(1);
                column.Width = 190;
    
                ICell cell = dataexcel1["A1"];
                cell.Text = "我是单元格1";
                cell.BackColor = Color.Aquamarine;
                //获取第二行第1列
                cell = dataexcel1[2, 1];
                cell.Text = "单元格名称:" + cell.Name;
                cell.BackColor = Color.Azure;
                //通过字符串合并
                IMergeCell MergeCell = dataexcel1.MergeCell("B1:F1");
                MergeCell.BackColor = Color.AliceBlue;
                MergeCell.Text = "B1:F1";
    
                MergeCell = dataexcel1.MergeCell("B2:F2");
                MergeCell.BackColor = Color.AliceBlue;
                MergeCell.Text = "B2:F2";
    
                //获取合并的单元格 
                //合并后的单元格以最左上角的单元格为基础
                cell = dataexcel1["B2"];
                cell.Text = "我是合并单元格" + cell.Name;
                cell.BackColor = Color.Beige;
                cell.Font = new Font("宋体", 13);
                cell.ForeColor = Color.Red;
                //设置内容居中
                cell.HorizontalAlignment = StringAlignment.Center;
                cell.VerticalAlignment = StringAlignment.Center;
    
                dataexcel1.Save(dataexcel1.Version + "_" + DateTime.Now.ToString("yyMMddHHmmss") + (fileindex++).ToString().PadLeft(4, '0') + ".dat");
            }


    效果:




    展开全文
  • 根据网友提出的“htmljs合并单元格 excel怎样合并单元格”等问题,Excel办公网整理了各大知名网站有关“htmljs合并单元格 excel怎样合并单元格”的一些信息:题目:我想在网页中调用js程序来显示当前时间。...
  • =CONCATENATE(A1,B1,C1)我们通常都使用函数“CONCATENATE”合并两列数据。只要在目标单元格(假设是C1)中输入“=CONCATENATE(A1,B1)”,就可以把A2与B2两个单元格内...A和B列为原数据,C列为合并单元格后的数据,我...
  • 场景:层级分为一级流程、...取消后如图:除了合并单元格最上面的单元格有值,其他单元格均为空单元格。需要将空白单元格也填充相应的内容。 百度的结果多为单列取消和并单元格解决方案。选中数据,点击“查找...
  • 说明:合并单元格,可选择合并多行多单元格。 语法: public void Merge(int rowIndex,index colIndex,int cellRows,int cellCols); 2 合并单元格 (1)合并单行单元格 实现代码: using Aspose.Cells; ...
  • //功能:合并表格 //参数:tb-需要合并的表格ID //参数:colLength--需要对前几列进行合并,比如, //想合并前两列,后面的数据列忽略合并,colLength应为2 //缺省表示对全部列合并...
  • jqgrid合并单元格 .jqgrid { width: 80%; margin: 0 auto; } /* 这个代码是解决表头有一点点错位的问题 */ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-...
  • 在jsp、html页面中实现table表格按列合并相同数据行单元格代码,可实现功能为:在一个table表格中,合并指定列中所有相同数据相邻行单元格内容。
  • qt 合并单元格 tablewidget 合并单元格

    千次阅读 2019-05-23 15:13:10
    合并单元格效果的实现: tableWidget->setSpan(1, 1, 2, 2) # 其参数为: 要改变单元格的 第一个单元格 行数 数 要合并的 几行 几列 代表从(1,1)单元格开始合并,要合并两行两列,即图片红色标注部分 ...
  • // 合并单元格function hbdyg() {var tab = document.getElementById("spec_input_tab"); //要合并的tableIDvar maxCol ... //maxCol:合并单元格作用到多少console.log(maxCol);if (tab != null) {for (var col =...
  • 合并单元格

    2021-03-02 21:17:47
    在table表格标签的使用中,有时我们会看到类似于如下简历表格中的照片区域一样的合并单元格,那我们需要怎么做。 合并单元格方式 跨行合并:rowspan=“合并单元格的个数” 跨列合并:colspan="“合并单元格的个数...
  • HTML网页使用表格的时候,如果要跨列合并单元格,使用<tr colspan=?></tr> HTML网页使用表格的时候,如果要跨行合并单元格,使用<tr rowspan=?></tr> <table> <tr> <td ...
  • 实现同相同单元格值的合并与统一头的归类 实现同相同单元格值的合并与统一头的归类 实现同相同单元格值的合并与统一头的归类 实现同相同单元格值的合并与统一头的归类
  • 使用xlrd自带属性:merged_cells # 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,起始,结束) merged = sheet.merged_cells#结果: 2. 使用循环判断是合并单元格还是普通单元格,并将合并...
  • css table之合并单元格colspan 是合并,rowspan是合并行,合并行的时候,比如rowspan="2",它的下一行tr会少一;合并的时候 colspan="2",此行的会少一我是占位符我是占位符我是占位符我是占位符我是占位...
  • layui合并单元格(此方式适用于没有冻结的单元格合并) /** * name layui合并tbody中单元格的方法 * @param fieldName 要合并列的field属性值往后面加可以传多个属性名称 * @param index 表格的索引值 从1开始 ...
  • 使用xlrd自带属性:merged_cells# 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,起始,结束)merged = sheet.merged_cells #结果:[(1,5,0,1),(5,9,0,1)]2.使用循环判断是合并单元格还是...
  • javascript合并单元格

    2010-11-26 22:37:46
    js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格js合并单元格
  • 合并单元格内容相同的
  • excel怎么合并单元格方法今天有网友在QQ上问了笔者一个excel合并单元格的问题,找不到怎么合并了。下面针对这个问题,笔者今天就把“excel怎么合并单元格”的方法和步骤详细的说下,希望对那些刚用excel软件还不太...
  • 使用Easyui-DataGrid过程用。做统计/报表等时经常会使用到合并单元格,原生态Easyui-DataGrid没有合并单元格的属性或方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,310
精华内容 20,924
关键字:

怎样按列合并单元格