如何在 Excel 中合并和取消合并单元格

如何使用 IronXL 在 C# 中合并和取消合并单元格

This article was translated from English: Does it need improvement?
Translated
View the article in English

细胞合并是指将两个或多个相邻细胞合并成一个更大的细胞的过程。 另一方面,细胞分离则是相反的过程,即将合并的细胞重新分裂成其原来的单个细胞。 此功能可实现灵活性、一致性和更好的数据分析。

快速入门:使用单个调用合并一系列单元格

只需几行代码,即可加载工作簿,使用 IronXL 的合并方法合并指定的单元格区域,然后保存文件。它专为开发人员设计,让他们无需 Excel Interop 即可轻松合并单元格。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    var ws = WorkBook.Load("file.xlsx").DefaultWorkSheet; ws.Merge("B3:D3"); ws.SaveAs("merged.xlsx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

合并单元格示例

可以使用Merge方法合并一系列单元格。 该过程会将单元格合并,而不会删除任何现有值或数据,但只会显示合并区域中第一个单元格的值。 但是,合并单元格的值在 IronXL 中仍然可以访问。

请注意合并筛选范围内的单元格可能会导致 Excel 文件冲突,需要执行 Excel 修复才能查看电子表格。

下面的代码示例演示了如何通过指定地址来合并一系列单元格。

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-merge.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var range = workSheet["B2:B5"];

// Merge cells B7 to E7
workSheet.Merge("B7:E7");

// Merge selected range
workSheet.Merge(range.RangeAddressAsString);

workBook.SaveAs("mergedCell.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

Private range = workSheet("B2:B5")

' Merge cells B7 to E7
workSheet.Merge("B7:E7")

' Merge selected range
workSheet.Merge(range.RangeAddressAsString)

workBook.SaveAs("mergedCell.xlsx")
$vbLabelText   $csharpLabel

示范

合并单元格演示

检索合并区域示例

检索合并区域是识别 Microsoft Excel 等电子表格可视化软件中显示值的一项有用功能。 要获取合并区域的列表,可以使用GetMergedRegions方法。

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-retrieve-merged-regions.cs
using IronXL;
using System.Collections.Generic;
using System;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply merge
workSheet.Merge("B4:C4");
workSheet.Merge("A1:A4");
workSheet.Merge("A6:D9");

// Retrieve merged regions
List<IronXL.Range> retrieveMergedRegions = workSheet.GetMergedRegions();

foreach (IronXL.Range mergedRegion in retrieveMergedRegions)
{
    Console.WriteLine(mergedRegion.RangeAddressAsString);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

取消合并单元格示例

可以通过两种不同的方法取消合并区域的合并。 第一种也是最简单的方法是指定要取消合并的单元格地址,例如B3:B6

或者,您也可以根据合并区域的索引取消合并单元格。 合并区域按时间顺序排列。 为此,您可以先检索合并区域,然后将所需的索引传递给Unmerge方法。

请注意单元格地址必须与合并区域完全对应。 无法取消合并区域中的部分内容。

:path=/static-assets/excel/content-code-examples/how-to/csharp-excel-merge-cells-unmerge.cs
using IronXL;

WorkBook workBook = WorkBook.Load("mergedCell.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Unmerge the merged region of B7 to E7
workSheet.Unmerge("B7:E7");

workBook.SaveAs("unmergedCell.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("mergedCell.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Unmerge the merged region of B7 to E7
workSheet.Unmerge("B7:E7")

workBook.SaveAs("unmergedCell.xlsx")
$vbLabelText   $csharpLabel

示范

取消合并单元格演示

常见问题解答

如何在C#中不使用Excel Interop合并单元格?

通过利用IronXL的Merge方法,您可以在C#中不使用Excel Interop合并单元格。这涉及加载工作簿,选择工作表,指定范围,并应用Merge方法来合并单元格。

如何在C#应用程序中取消合并单元格?

要在C#应用程序中使用IronXL取消合并单元格,您可以使用Unmerge方法。指定已合并区域的范围地址或索引以逆转合并过程。

开始使用IronXL进行Excel操作的流程是什么?

要开始使用IronXL进行Excel操作,先从NuGet下载库,加载或创建电子表格,并利用方法如MergeUnmerge对单元格进行编程操作。

我可以检索电子表格中合并区域的列表吗?

是的,您可以使用IronXL的GetMergedRegions方法检索电子表格中合并区域的列表。这对于识别您的工作表中哪些单元格已合并很有帮助。

是否可以在不安装Microsoft Excel的情况下管理Excel电子表格?

是的,IronXL允许您以编程方式管理Excel电子表格,包括合并和取消合并单元格,而无需在系统上安装Microsoft Excel。

在过滤范围内合并单元格时,我该注意什么?

在过滤范围内合并单元格可能会导致Excel文件中的冲突,这可能需要使用Excel修复工具来正确查看电子表格。

Merge方法会擦除单元格数据吗?

不会,Merge方法不会擦除数据。它合并单元格同时仅显示第一个单元格的值,但所有单元格的值仍可访问。

如何在IronXL中可视化合并和取消合并过程?

IronXL提供代码示例和演示,显示如何执行合并和取消合并过程。这些示例帮助您可视化如何编程操作Excel文件。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布