Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > Cell单元格 >
如何:合并单元格或拆分合并的单元格

本主题演示如何将单元格区域合并为一个单元格并拆分合并的单元格。

合并单元格

若要将多个相邻单元格合并为一个单元格,请调用工作表的 Worksheet.MergeCells 方法并传递要合并的单元格区域。还可以使用区域的 RangeExtensions.Merge 方法合并此区域中的单元格。

这两种方法都可以接受 MergeCellsMode 参数,该参数允许您指定如何合并单元格(忽略或包含与其他合并单元格的交集、合并行或合并列)。有关其他信息和示例,请参阅 MergeCellsMode 枚举说明。

注意

合并单元格区域时,左上角非空单元格的数据(值、公式和格式设置)将显示在生成的合并单元格中。其他单元格数据丢失。

如果原始区域内的所有单元格均为空,则该区域的左上角单元格格式将应用于合并的单元格。

在下面的代码示例中,Worksheet.MergeCells 方法合并“A1:C4”单元格区域,RangeExtensions.Merge 方法将“A6:C8”单元格区域合并为一个单元格,并合并“E1:G5”单元格区域中的每一列:

Vb.Net
 

C#
 

拆分合并单元格

调用工作表的 Worksheet.UnMergeCells 方法并传递包含合并单元格的区域。还可以使用区域的 RangeExtensions.UnMerge 方法拆分此区域中的合并单元格。

以下代码示例拆分在上一节中合并的单元格:

Vb.Net
Using workbook As New DevExpress.Spreadsheet.Workbook()
    '访问工作簿的第一个工作表。
    Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets(0)

    '用浅灰色填充“A2”单元格。
    worksheet.Cells("A2").FillColor = Color.LightGray

    '指定“B2”单元格值。
    worksheet.Cells("B2").Value = "B2"
    '用浅绿色填充“B2”单元格。
    worksheet.Cells("B2").FillColor = Color.LightGreen

    '指定“C3”单元格值。
    worksheet.Cells("C3").Value = "C3"
    '用LightSalmon颜色填充“C3”单元格。
    worksheet.Cells("C3").FillColor = Color.LightSalmon

    '指定“A6”单元格值。
    worksheet.Cells("A6").Value = "A6"
    '用浅蓝色填充“A6”单元格。
    worksheet.Cells("A6").FillColor = Color.LightBlue

    '指定“E1”单元格值。
    worksheet.Cells("E1").Value = "E1"
    '用LightCoral颜色填充“E1”单元格。
    worksheet.Cells("E1").FillColor = Color.LightCoral

    '指定“F2”单元格值。
    worksheet.Cells("F2").Value = "F2"
    '用LightCyan颜色填充“F2”单元格。
    worksheet.Cells("F2").FillColor = Color.LightCyan

    '指定“G3”单元格值。
    worksheet.Cells("G3").Value = "G3"
    '用浅黄色填充“G3”单元格。
    worksheet.Cells("G3").FillColor = Color.LightYellow

    '将“A1:C4”单元格范围合并为一个单元格。
    worksheet.MergeCells(worksheet.Range("A1:C4"))

    '将“A6:C8”单元格范围合并为一个单元格。
    worksheet.Range("A6:C8").Merge()

    '按列合并“E1:G5”单元格范围。
    worksheet.Range("E1:G5").Merge(DevExpress.Spreadsheet.MergeCellsMode.ByColumns)
End Using

C#
using (DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook())
{
    // 访问工作簿的第一个工作表。
    DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets[0];
    
    // 用浅灰色填充“A2”单元格。
    worksheet.Cells["A2"].FillColor = Color.LightGray;
    
    // 指定“B2”单元格值。
    worksheet.Cells["B2"].Value = "B2";
    // 用浅绿色填充“B2”单元格。
    worksheet.Cells["B2"].FillColor = Color.LightGreen;
    
    // 指定“C3”单元格值。
    worksheet.Cells["C3"].Value = "C3";
    // 用LightSalmon颜色填充“C3”单元格。
    worksheet.Cells["C3"].FillColor = Color.LightSalmon;
    
    // 指定“A6”单元格值。
    worksheet.Cells["A6"].Value = "A6";
    // 用浅蓝色填充“A6”单元格。
    worksheet.Cells["A6"].FillColor = Color.LightBlue;
    
    // 指定“E1”单元格值。
    worksheet.Cells["E1"].Value = "E1";
    // 用LightCoral颜色填充“E1”单元格。
    worksheet.Cells["E1"].FillColor = Color.LightCoral;
    
    // 指定“F2”单元格值。
    worksheet.Cells["F2"].Value = "F2";
    // 用LightCyan颜色填充“F2”单元格。
    worksheet.Cells["F2"].FillColor = Color.LightCyan;
    
    // 指定“G3”单元格值。
    worksheet.Cells["G3"].Value = "G3";
    // 用浅黄色填充“G3”单元格。
    worksheet.Cells["G3"].FillColor = Color.LightYellow;
    
    // 将“A1:C4”单元格范围合并为一个单元格。
    worksheet.MergeCells(worksheet.Range["A1:C4"]);
    
    // 将“A6:C8”单元格范围合并为一个单元格。
    worksheet.Range["A6:C8"].Merge();
    
    // 按列合并“E1:G5”单元格范围。
    worksheet.Range["E1:G5"].Merge(DevExpress.Spreadsheet.MergeCellsMode.ByColumns);
}

拆分工作表中所有合并的单元格

调用 CellRange.GetMergedRanges 方法以获取与特定区域相交的所有合并范围。

下面的代码示例查找并拆分工作表中所有合并的单元格区域:

Vb.Net
Using workbook As New DevExpress.Spreadsheet.Workbook()
    '访问工作簿的第一个工作表。
    Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets(0)

    '拆分“A1:C4”单元格范围中的合并单元格。
    worksheet.UnMergeCells(worksheet.Range("A1:C4"))

    '拆分“A6:C8”单元格范围中的合并单元格。
    worksheet.Range("A6:C8").UnMerge()

    '拆分“E1:G5”单元格范围中的合并单元格。
    worksheet.Range("E1:G5").UnMerge()
End Using

C#
using (DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook())
{
    // 访问工作簿的第一个工作表。
    DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets[0];
    
    // 拆分“A1:C4”单元格范围中的合并单元格。
    worksheet.UnMergeCells(worksheet.Range["A1:C4"]);
    
    // 拆分“A6:C8”单元格范围中的合并单元格。
    worksheet.Range["A6:C8"].UnMerge();
    
    // 拆分“E1:G5”单元格范围中的合并单元格。
    worksheet.Range["E1:G5"].UnMerge();
}