在Excel中连续多列相同数据项合并

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Excel中连续多列相同数据项合并

————————————————————————————————作者:————————————————————————————————日期:

在Excel中将连续多列相同数据项合并

效果图如下:

代码如下:

///

///合并工作表中指定行数和列数数据相同的单元格

///

///工作表索引

///开始行索引

///开始列索引

///要合并的行数

///要合并的列数

public void MergeWorkSheet(int sheetIndex,int beginRowIndex,int beginColumnIndex,int row Count,int columnCount)

{

//检查参数

if ( columnCount < 1 || rowCount < 1)

return ;

for(int col=0;col

{

int mark = 0; //标记比较数据中第一条记录位置

int mergeCount = 1; //相同记录数,即要合并的行数

string text = "";

for(int row=0;row

{

string prvName = "";

string nextName = "";

//最后一行不用比较

if( row + 1 < rowCount)

{

for(int n=0;n<=col;n++)

{

range = (Excel.Range)workSheet.Cells[row + beginRowIndex,n + beginColumnI ndex];

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 + beginCol umnIndex];

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,be ginRowIndex + mark + mergeCount - 1,beginColumnIndex + col,text);

mergeCount = 1; mark = row + 1; }

}

}

}

}

相关文档
最新文档