关于Excel 相同内容上下单元格合并的方法
2012-05-30 16:18
344 查看
转发一下,以备后用。这个对于使用Excel输出报表的人来说很有用。具体功能没验证,以后再说吧。
/// <summary>
2 /// 合并指定EXCEL的单元格 相同内容的
3 /// </summary>
4 /// <param name="mySheet">指定的EXCEL工作表</param>
5 /// <param name="startLine">起始行</param>
6 /// <param name="recCount">总行数</param>
7 /// <param name="col">要合并的列</param>
8 private void MergeCell_Second(ref Worksheet mySheet, int startLine, int recCount, string col)
9 {
10 string qy1 = mySheet.get_Range(col + startLine.ToString(), col + startLine.ToString()).Text.ToString();//获得起始行合并列单元格的填充内容
11
12 Range rg1;
13 string strtemp = "";
14 bool endCycle = false;
15
16 //从起始行到终止行做循环
17 for (int i = startLine; i <= recCount + startLine - 1&&!endCycle; )
18 {
19 for (int j = i + 1; j <= recCount + startLine - 1; j++)
20 {
21 rg1 = mySheet.get_Range(col + j.ToString(), col + j.ToString());//获得下一行的填充内容
22 strtemp = rg1.Text.ToString().Trim();
23
24 if (strtemp.Trim()==qy1.Trim() )//内容等于初始内容
25 {
26 rg1 = mySheet.get_Range(col + i.ToString(), col + j.ToString());//选取上条合并位置和当前行的合并区域
27 rg1.ClearContents();//清空要合并的区域
28 rg1.MergeCells = true;
29 if (col == "A")
30 mySheet.Cells[i, 1] = qy1;
31 else if (col == "B")
32 mySheet.Cells[i, 2] = qy1;
33
34 if (j== recCount + startLine - 1)
35 {
36 endCycle = true;
37 }
38 }
39 else//内容不等于初始内容
40 {
41 i = j;//i获取新值
42 qy1 = mySheet.get_Range(col + j.ToString(), col + j.ToString()).Text.ToString();
43 break;
44 }
45 }
46 }
47 }
/// <summary>
2 /// 合并指定EXCEL的单元格 相同内容的
3 /// </summary>
4 /// <param name="mySheet">指定的EXCEL工作表</param>
5 /// <param name="startLine">起始行</param>
6 /// <param name="recCount">总行数</param>
7 /// <param name="col">要合并的列</param>
8 private void MergeCell_Second(ref Worksheet mySheet, int startLine, int recCount, string col)
9 {
10 string qy1 = mySheet.get_Range(col + startLine.ToString(), col + startLine.ToString()).Text.ToString();//获得起始行合并列单元格的填充内容
11
12 Range rg1;
13 string strtemp = "";
14 bool endCycle = false;
15
16 //从起始行到终止行做循环
17 for (int i = startLine; i <= recCount + startLine - 1&&!endCycle; )
18 {
19 for (int j = i + 1; j <= recCount + startLine - 1; j++)
20 {
21 rg1 = mySheet.get_Range(col + j.ToString(), col + j.ToString());//获得下一行的填充内容
22 strtemp = rg1.Text.ToString().Trim();
23
24 if (strtemp.Trim()==qy1.Trim() )//内容等于初始内容
25 {
26 rg1 = mySheet.get_Range(col + i.ToString(), col + j.ToString());//选取上条合并位置和当前行的合并区域
27 rg1.ClearContents();//清空要合并的区域
28 rg1.MergeCells = true;
29 if (col == "A")
30 mySheet.Cells[i, 1] = qy1;
31 else if (col == "B")
32 mySheet.Cells[i, 2] = qy1;
33
34 if (j== recCount + startLine - 1)
35 {
36 endCycle = true;
37 }
38 }
39 else//内容不等于初始内容
40 {
41 i = j;//i获取新值
42 qy1 = mySheet.get_Range(col + j.ToString(), col + j.ToString()).Text.ToString();
43 break;
44 }
45 }
46 }
47 }
相关文章推荐
- 在Excel表的每一行之前插入相同内容的表头的方法
- excel将某列内容相同的相邻单元格合并
- 关于Excel的对象、方法和属性
- 将excel文件的内容导入sql server数据库的方法
- 关于MFC读取excel文件后退出程序后出现dispatch错误的解决方法
- excel中遍历与同行其他列内容相同的其他sheet中的A列并获取对应行B列内容
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例 .
- 关于通过字段内容灵活关联java中方法
- 关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法
- 关于防止Excel文档被编辑的方法。
- POI 单元格垂直居中,相同内容的单元格合并
- 导出内容到word、excel的一些方法
- 导出的excel同一列相同内容的合并
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- Win2003下关于c#读写Excel时,出现存取被拒&Excel实例化出错的一个解决方法
- 关于将EXCEL文件导入到MYSQL数据库的一些方法
- 将网页内容转换成word或excel文档的方法(c#.net)
- 程序读取Excel,单元格内容超过255被截断解决方法
- 比较2个DataTable中的内容是否相同的方法
- 关于js操作word和excel,js导出word和excel的若干方法汇总[转]