如何合併和取消合併 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互操作合併單元格?

您可以通過使用IronXL的Merge方法在不使用Excel互操作的情況下合併C#中的單元格。這涉及加載工作簿,選擇工作表,指定範圍並應用Merge方法合併單元格。

如何在C#應用程序中取消合併單元格?

要在使用IronXL的C#應用程序中取消合併單元格,您可以使用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 剛發表