As follows:
The Code is as follows:/** // <summary>
/// Merge the cells with the same number of rows and columns in the worksheet
/// </Summary>
/// <Param name = "sheetIndex"> worksheet index </param>
/// <Param name = "beginRowIndex"> Start row index </param>
/// <Param name = "beginColumnIndex"> Start column index </param>
/// <Param name = "rowCount"> Number of rows to be merged </param>
/// <Param name = "columnCount"> Number of columns to be merged </param>
Public void MergeWorkSheet (int sheetIndex, int beginRowIndex, int beginColumnIndex, int rowCount, int columnCount)
{
// Check parameters
If (columnCount <1 | rowCount <1)
Return;
For (int col = 0; col <columnCount; col ++)
{
Int mark = 0; // mark the position of the first record in the comparison data
Int mergeCount = 1; // the same number of records, that is, the number of rows to be merged
String text = "";
For (int row = 0; row <rowCount; row ++)
{
String prvName = "";
String nextName = "";
// The last row does not need to be compared.
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;
}
}
}
}
}