在本文中,您将了解如何在 C# 中合并或取消合并工作表中的 Excel 单元格。通常,合并单元格是指将一个或多个单元格连接在一起形成一个大单元格。但是,可以垂直或水平合并相邻的单元格。而将一个大单元格转换为多个单元格在 Excel 工作表中称为取消合并或拆分单元格。让我们探索以下用例:

使用 C# 合并工作表中的 Excel 单元格

您可以使用 C# 使用 Aspose.Cells for .NET API 轻松合并 Excel 工作表中的单元格。在此示例中,我们将从头开始创建一个新的 Excel 工作表,然后按照以下步骤合并几个单元格:

  1. 创建一个 Workbook 对象
  2. 获得第一个工作盘
  3. 合并 特定单元格
  4. 将值放在合并的单元格中
  5. 在单元格上应用样式
  6. 保存输出excel工作表

下面的代码片段显示了如何使用 C# 合并 Excel 工作表中的单元格:

// 创建工作簿。
Workbook wbk = new Workbook();

// 创建一个工作表并获取第一张工作表。
Worksheet worksheet = wbk.Worksheets[0];

// 创建一个 Cells 对象以获取所有单元格。
Cells cells = worksheet.Cells;

// 将一些单元格 (C6:E7) 合并为一个 C6 单元格。
cells.Merge(5, 2, 2, 3);

// 将数据输入 C6 Cell。
worksheet.Cells[5, 2].PutValue("This is my value");

// 创建一个 Style 对象以获取 C6 单元格的样式。
Style style = worksheet.Cells[5, 2].GetStyle();

// 创建一个字体对象
Font font = style.Font;

// 设置名称。
font.Name = "Times New Roman";

// 设置字体大小。
font.Size = 18;

// 设置字体颜色
font.Color = System.Drawing.Color.Blue;

// 加粗文字
font.IsBold = true;

// 使其斜体
font.IsItalic = true;

// 将C6 Cell的背景颜色设置为红色
style.ForegroundColor = System.Drawing.Color.Red;
style.Pattern = BackgroundType.Solid;

// 将样式应用于 C6 单元格。
cells[5, 2].SetStyle(style);

// 保存工作簿。
wbk.Save(dataDir + "MergeCells.xlsx");

从此代码段生成的输出文件将包含合并的单元格,如下面的屏幕截图所示:

合并单元格

使用 C# 取消合并工作表中的 Excel 单元格

我们已经学习了如何合并 Excel 文件中的单元格。让我们把这个过程更进一步。在这里,我们将考虑按照以下步骤取消合并 Excel 工作表中的单元格:

  1. 加载源 Excel 文件
  2. 创建 Worksheet 对象并访问第一个工作表
  3. 取消合并 单元格
  4. 保存输出文件

下面的代码片段基于这些步骤,并展示了如何使用 C# 取消合并 Excel 文件中的单元格:

// 打开excel文件。
Workbook wbk = new Workbook(dataDir + "MergeCells.xlsx");

// 创建一个工作表并获取第一张工作表。
Worksheet worksheet = wbk.Worksheets[0];

// 创建一个 Cells 对象以获取所有单元格。
Cells cells = worksheet.Cells;

// 取消合并单元格。
cells.UnMerge(5, 2, 2, 3);

// 保存文件。
wbk.Save(dataDir + "UnmergeCells.xlsx");

下图显示了在您的环境中运行上述代码时未合并的单元格的外观:

取消合并单元格

使用 C# 合并工作表中的一系列 Excel 单元格

有时会在不同的单元格范围下指定多个单元格。您可能希望在 Excel 工作表中合并特定范围的单元格。在这种情况下,请按照下列步骤操作:

  1. 创建一个 Workbook 对象
  2. 访问第一个 工作表
  3. 在单元格中输入数据
  4. 创建并 合并 范围
  5. 保存输出excel文件

下面的代码片段显示了如何使用 C# 将单元格区域合并到 Excel 文件中的一个更大的单元格中:

// 创建工作簿
Workbook workbook = new Workbook();

// 访问第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 将数据输入 C6 Cell。
worksheet.Cells[0, 0].PutValue("Merge Range");

// 创建范围
Range range = worksheet.Cells.CreateRange("A1:D4");

// 将范围合并到一个单元格中
range.Merge();

// 保存工作簿
workbook.Save(dataDir + "Merge_Range.xlsx");

使用 C# 取消合并工作表中的一系列 Excel 单元格

在前面的示例中,我们已经探索了在 Excel 中合并一系列单元格。让我们按照以下步骤继续取消合并合并的单元格:

  1. 加载源 工作簿
  2. 访问特定的 工作表
  3. 创建一个 Range 对象
  4. 调用 UnMerge 方法
  5. 保存输出 Excel 文件

下面的代码片段遵循这些步骤,并展示了如何使用 C# 取消合并 Excel 工作表中的一系列单元格:

// 创建工作簿
Workbook workbook = new Workbook(dataDir + "Merge_Range.xlsx");

// 访问第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 创建范围
Range range = worksheet.Cells.CreateRange("A1:D4");

// 取消合并范围
range.UnMerge();

// 保存工作簿
workbook.Save(dataDir + "UnmergeRange.xlsx");

用C#合并工作表中命名范围的Excel单元格

有时 Excel 文件包含多个命名范围,因为它很容易识别和操作。因此,您还可以通过指定名称来合并任何命名范围。结果,该命名范围内的所有单元格将合并到一个更大的单元格中。您需要按照以下步骤操作:

  1. 加载源 Excel 工作簿
  2. 访问包含命名范围的 Worksheet
  3. 定义和应用样式
  4. 合并 命名范围
  5. 保存输出文件

下面的代码片段解释了如何在 C# 中合并命名区域中的单元格:

// 加载工作簿
Workbook workbook = new Workbook(dataDir + "Merge_Range.xlsx");

// 访问第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 指定范围
Range range = worksheet.Cells.CreateRange("A1:D4");


range.Name = "Named_Range";

// 获取范围。
Range range1 = workbook.Worksheets.GetRangeByName("Named_Range");

// 定义样式对象。
Style style = workbook.CreateStyle();

// 设置对齐方式。
style.HorizontalAlignment = TextAlignmentType.Center;

// 创建一个 StyleFlag 对象。
StyleFlag flag = new StyleFlag();
// 使相对样式属性为 ON。
flag.HorizontalAlignment = true;

// 将样式应用于范围。
range1.ApplyStyle(style, flag);

// 将数据输入范围。
range1[0, 0].PutValue("Aspose");

// 合并范围
range.Merge();

// 保存工作簿
workbook.Save(dataDir + "Merge_NamedRange.xlsx");

上述代码段的输出将与下图相同:

合并命名范围

结论

合并或取消合并 Excel 工作簿和工作表中的单元格是一项重要且有用的功能。我们在本文中编译了不同的可能用例以及所有步骤和图像。现在,您可以轻松地按照这些步骤合并或取消合并 Excel 文件中的单元格、范围或命名范围。如有任何疑问或疑虑,您可以通过免费支持论坛与我们联系。

也可以看看