[C#]合并单元格(行、列)
详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak
説明:控件ID指的是页面上面的GridView控件的ID名称或者是DataGrid控件的ID名称; 控件类型写GridView或者DataGrid(根据页面控件属于那种就写那种)。 如有疑问请留言。。。。。。。 /// <summary>
/// 合并单元格(合并某一行的所有列)
/// </summary>
/// <param name="id">控件的ID</param>
/// <param name="type">控件类型对象(如写GridView,DataGrid)</param>
/// <param name="rows">需要合并的行</param>
public static void GroupRow(string id,string type, int rows)
{
Control contr = new Control();
TableCell oldTc = null;
switch(type)
{
case "GridView":
GridView GridView1 = (GridView)contr.FindControl(id);
oldTc = GridView1.Rows[rows].Cells[];
for (int i = ; i < GridView1.Rows[rows].Cells.Count; i++)
{
TableCell tc = GridView1.Rows[rows].Cells[i]; //Cells[0]就是你要合并的列
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.ColumnSpan == )
{
oldTc.ColumnSpan = ;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
break;
case "DataGrid":
DataGrid DataGrid1 = (DataGrid)contr.FindControl(id);
oldTc = DataGrid1.Items[rows].Cells[];
for (int i = ; i < DataGrid1.Items[rows].Cells.Count; i++)
{
TableCell tc = DataGrid1.Items[rows].Cells[i]; //Cells[0]就是你要合并的列
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.ColumnSpan == )
{
oldTc.ColumnSpan = ;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
break;
}
} /// <summary>
/// 合并单元格(合并一行中的几列)
/// </summary>
/// <param name="id">控件ID</param>
/// <param name="type">控件类型对象(如写GridView,DataGrid)</param>
/// <param name="rows">行</param>
/// <param name="sCol">开始列</param>
/// <param name="eCol">结束列</param>
public static void GroupRow(string id, string type, int rows, int sCol, int eCol)
{
Control contr = new Control();
TableCell oldTc = null;
switch (type)
{
case "GridView":
GridView GridView1 = (GridView)contr.FindControl(id);
oldTc = GridView1.Rows[rows].Cells[sCol];
for (int i = ; i < eCol - sCol; i++)
{
TableCell tc = GridView1.Rows[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列
tc.Visible = false;
if (oldTc.ColumnSpan == )
{
oldTc.ColumnSpan = ;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
break;
case "DataGrid":
DataGrid DataGrid1 = (DataGrid)contr.FindControl(id);
oldTc = DataGrid1.Items[rows].Cells[sCol];
for (int i = ; i < eCol - sCol; i++)
{
TableCell tc = DataGrid1.Items[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列
tc.Visible = false;
if (oldTc.ColumnSpan == )
{
oldTc.ColumnSpan = ;
}
oldTc.ColumnSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
break;
}
} /// <summary>
/// 合并单元格(合并某一列所有行)
/// </summary>
/// <param name="id">控件ID</param>
/// <param name="type">控件类型对象(如写GridView,DataGrid)</param>
/// <param name="cols">需要合并的列</param>
public static void GroupCol(string id, string type, int cols)
{
Control contr = new Control();
if (type == "GridView")
{
GridView GridView1 = (GridView)contr.FindControl(id); if (GridView1.Rows.Count < || cols > GridView1.Rows[].Cells.Count - )
{
return;
}
TableCell oldTc = GridView1.Rows[].Cells[cols];
for (int i = ; i < GridView1.Rows.Count; i++)
{
TableCell tc = GridView1.Rows[i].Cells[cols];
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
}
else
{
DataGrid DataGrid1 = (DataGrid)contr.FindControl(id); if (DataGrid1.Items.Count < || cols > DataGrid1.Items[].Cells.Count - )
{
return;
}
TableCell oldTc = DataGrid1.Items[].Cells[cols];
for (int i = ; i < DataGrid1.Items.Count; i++)
{
TableCell tc = DataGrid1.Items[i].Cells[cols];
if (oldTc.Text == tc.Text)
{
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldTc = tc;
}
}
}
} /// <summary>
/// 合并单元格(合并某一列中的某些行)
/// </summary>
/// <param name="id">控件ID</param>
/// <param name="type">控件类型对象(如写GridView,DataGrid)</param>
/// <param name="cols">列</param>
/// <param name="sRow">开始行</param>
/// <param name="eRow">结束列</param>
public static void GroupCol(string id, string type, int cols, int sRow, int eRow)
{
Control contr = new Control();
TableCell oldTc = null;
switch(type)
{
case "GridView":
GridView GridView1 = (GridView)contr.FindControl(id);
if (GridView1.Rows.Count < || cols > GridView1.Columns.Count - )
{
return;
}
oldTc = GridView1.Rows[sRow].Cells[cols];
for (int i = ; i < eRow - sRow; i++)
{
TableCell tc = GridView1.Rows[sRow + i].Cells[cols];
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
break;
case "DataGrid":
DataGrid DataGrid1 = (DataGrid)contr.FindControl(id);
if (DataGrid1.Items.Count < || cols > DataGrid1.Columns.Count - )
{
return;
}
oldTc = DataGrid1.Items[sRow].Cells[cols];
for (int i = ; i < eRow - sRow; i++)
{
TableCell tc = DataGrid1.Items[sRow + i].Cells[cols];
tc.Visible = false;
if (oldTc.RowSpan == )
{
oldTc.RowSpan = ;
}
oldTc.RowSpan++;
oldTc.VerticalAlign = VerticalAlign.Middle;
}
break;
default:
break;
}
}
[C#]合并单元格(行、列)的更多相关文章
- poi导出excel合并单元格(包括列合并、行合并)
1 工程所需jar包如下:commons-codec-1.5.jarcommons-logging-1.1.jarlog4j-1.2.13.jarjunit-3.8.1.jarpoi-3.9-2012 ...
- DataGridView合并单元格(一列或一行)
#region"合并单元格的测试(一列或一行)" // int?是搜索一种类型(可空类型),普通的int不能为null,而用int?,其值可以为null //private int ...
- Java导出Excel表,POI 实现合并单元格以及列自适应宽度(转载)
POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress ...
- POI 实现合并单元格以及列自适应宽度
POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress ...
- EasyUi 合并单元格占列显示
$("#TableContainer").datagrid({ url: '', method: "get&q ...
- jquery操作表格 合并单元格
jquery操作table,合并单元格,合并相同的行 合并的方法 $("#tableid").mergeCell({ cols:[X,X] ///参数为要合并的列}) /** * ...
- 【记录】解析具有合并单元格的Excel
最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...
- 【开发者笔记】解析具有合并单元格的Excel
最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...
- 个人永久性免费-Excel催化剂功能第52波-相同内容批量合并单元格,取消合并单元格并填充内容
在高级Excel用户群体中无比痛恨的合并单元格,在现实的表格中却阴魂不散的纠缠不断.今天Excel催化剂也来成为“帮凶”,制造更多的合并单元格.虽然开发出此功能,请使用过程中务必要保持节制,在可以称为 ...
随机推荐
- JNI 里使用STL
JNI里的c或者c++ 调用stl 的时候,比如引入map头文件: #include <map> 在cygwin使用NDK编译的时候,会提示: fatal error:map: No su ...
- 将网页的部分位置嵌入Html网页
<div align="center" style="margin:0 auto;"> <div style="width:500p ...
- 利用redis限制单个时间内某个mac地址的访问次数
一.思路 用户mac地址唯一,可以作为redis中的key,每次请求进来,利用ttl命令,判断redis中key的剩余时间,如果大于零,则利用incr进行+1操作,然后再与总的限制次数作对比. 二.代 ...
- easyui隐藏列
1.$("#test-datagrid").datagrid('hideColumn', 'password');其中第二个参数为对应的域,即field 2. <th dat ...
- golang的array/slice
相同点 由相同类型的元素组合构成 元素有序排列,0为第一个元素下标 基本使用方法相同 区别 array声明时需要指定容量大小,而且无法修改 slice可通过append增加元素,当容量不够时,会自动扩 ...
- NHibernate注意事项
1.检查映射文件是否正确 2.检查配置文件的“嵌入的资源”选项 3.检查Configuration是否加载了程序集
- WCF配置Tcp协议
注意点: 1,<serviceMetadata httpGetEnabled="false"/> 2, <services> ...
- Slim安装以及使用【转】
最近在用backbone.js 做东西,因为牵扯到REST services 所以需要后台支持,此处选择了php.Slim 是php的一个框架. 貌似国内文章对此的介绍比较少,在安装Slim的过程中出 ...
- Spark之 SparkSql整合hive
整合: 1,需要将hive-site.xml文件拷贝到Spark的conf目录下,这样就可以通过这个配置文件找到Hive的元数据以及数据存放位置. 2,如果Hive的元数据存放在Mysql中,我们还需 ...
- Action的三种编写方式
-------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...