C#在Excel中将连续多列相同数据项合并
2008-03-23 21:06
176 查看
效果图如下:
/**//// <summary> /// 合并工作表中指定行数和列数数据相同的单元格 /// </summary> /// <param name="sheetIndex">工作表索引</param> /// <param name="beginRowIndex">开始行索引</param> /// <param name="beginColumnIndex">开始列索引</param> /// <param name="rowCount">要合并的行数</param> /// <param name="columnCount">要合并的列数</param> public void MergeWorkSheet(int sheetIndex,int beginRowIndex,int beginColumnIndex,int rowCount,int columnCount) { //检查参数 if ( columnCount < 1 || rowCount < 1) return ; for(int col=0;col<columnCount;col++) { int mark = 0; //标记比较数据中第一条记录位置 int mergeCount = 1; //相同记录数,即要合并的行数 string text = ""; for(int row=0;row<rowCount;row++) { string prvName = ""; string nextName = ""; //最后一行不用比较 if( row + 1 < rowCount) { for(int n=0;n<=col;n++) { range = (Excel.Range)workSheet.Cells[row + beginRowIndex,n + beginColumnIndex]; range = (Excel.Range)range.MergeArea.get_Item(1,1); text = range.Text.ToString(); prvName = prvName + text; range = (Excel.Range)workSheet.Cells[row + 1 + beginRowIndex,n + beginColumnIndex]; range = (Excel.Range)range.MergeArea.get_Item(1,1); nextName = nextName + range.Text.ToString(); } if(prvName == nextName) { mergeCount++; if(row == rowCount - 2) { this.MergeCells(sheetIndex,beginRowIndex + mark,beginColumnIndex + col,beginRowIndex + mark + mergeCount - 1,beginColumnIndex + col,text); } } else { this.MergeCells(sheetIndex,beginRowIndex + mark,beginColumnIndex + col,beginRowIndex + mark + mergeCount - 1,beginColumnIndex + col,text); mergeCount = 1; mark = row + 1; } } } } } |
相关文章推荐
- C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
- 在Excel中将连续多列相同数据项合并
- office技巧-1 : 如何在excel中将不连续的空格替换成相同的值
- 学习(二)C#合并同一文件夹下相同格式的Excel数据
- C#中将ListView数据导出为excel
- EXCEL中合并同列中连续相同内容的单元格
- C#中将ListView中数据导出到Excel的实例方法
- 如何将C#中将TextBox的数据以及从数据库中查询得到的数据导出到Excel中
- c# Random快速连续产生相同随机数的解决方案
- c# Random快速连续产生相同随机数的解决方案
- 如何提高C#中将数据导入到Excel的性能
- C# WinForm程序中将DataGridView中的数据导出为EXCEL
- c#中将数据库数据导出到EXCEL中
- 如何提高C#中将数据导入到Excel的性能
- C#开发——winform中将Excel数据导入DataGridView
- 在c#中将dataset输出成xml内容的xls文件,解决其它输出不能在excel中显示“001”的前导0的问题
- C#中将数据导到excel中
- c# 导入Excel 存到DataTable并进行行转列操作及合并DataTable相同行的值
- C#中将控件数据导出Excel
- C#中将ListView中数据导出到Excel