[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催化剂也来成为“帮凶”,制造更多的合并单元格.虽然开发出此功能,请使用过程中务必要保持节制,在可以称为 ...
随机推荐
- 常用经典SQL语句大全完整版--详解+实例 (存)
常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012 http://blog.sina.com.cn/s/blog_84 ...
- LUA和C#关于字符串中\0的处理
LUA中: local s = "hello\0\0dddddddd" print(s) --hello C#中: string s = "hello\0\0dddddd ...
- Synchronized块同步变量的误区
我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...
- jquery ui的css设计
jquery ui 是当前最强大的UI库之一,其两大卖点是对IE6的良好支持与换肤功能.为了构建avalon ui,今天起我将投入一部分精力来研究时下最流行的几个CSS框架.它是首当其冲. jquer ...
- bootstrap-select.js 下拉框多选后动态赋值
话不多说先上demo 其实demo是从官网下载的 只稍作改动 由于没有搞清楚怎么上传源代码 就把官网的链接贴出来吧 https://github.com/silviomoreto/bootstrap- ...
- MySQL数据库篇之存储引擎
主要内容: 一.数据引擎 二.MySQL支持的存储引擎 三.使用存储引擎 1️⃣ 什么是存储引擎? MySQL中建立的库----> 文件夹,库中建立的表----->文件. 现实生活中我们用 ...
- S数据导入
一. 职责下的视图导入先对比UAT172和PROD 177的数据,若177比172多的数据进行删除,若172比177多的数据,重新加入到177. 1.删除177多余的 搜索一个177比172多的,进行 ...
- Webdings和Wingdings字符码对应表
刚才研究动网论坛代码,发现一个页面提示标记 i 感觉很神奇,看了半天才明白原来是一种叫“Webdings”的字体,其实很简单,只需要<font face='webdings' size=&quo ...
- Emgu CV的配置以及在VS 2012中进行图像处理的步骤和实例
说明: 1.所使用的Emgu CV是目前的最新版本3.1.0,下载链接为:https://sourceforge.net/projects/emgucv/files/emgucv/3.1.0/(我选的 ...
- class Qstring has no member named to Ascii
人家修改了.真的没有toAscii了.不过可以用toLatin1或者qPrintable()