如何合併和取消合併 Excel 中的單元格

如何使用IronXL在 C# 中合併和取消合併儲存格

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

IronXL使 C# 開發人員能夠使用簡單的方法(例如 Merge("B3:D3")Unmerge())將多個 Excel 單元格合併為一個更大的單元格,或將它們取消合併為單個單元格,從而無需 Excel Interop 即可靈活地進行格式化和資料呈現。

快速入門:使用單一呼叫合併一系列儲存格

只需幾行程式碼,即可載入工作簿,使用 IronXL 的 Merge 方法合併指定的儲存格區域,然後儲存檔案。它專為開發人員設計,無需 Excel Interop 即可輕鬆合併儲存格。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXl.Excel

    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

如何使用 C# 在 Excel 中合併儲存格?

可使用 Merge 方法合併一系列儲存格。 過程會將儲存格合併,而不會刪除任何現有值或數據,但只會顯示合併區域中第一個儲存格的值。 但是,合併儲存格的值在IronXL中仍然可以存取。 在建立具有格式化標題的電子表格或使用Excel 範本時,此功能尤其有用。

請注意合併篩選範圍內的儲存格可能會導致 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");
$vbLabelText   $csharpLabel

合併時儲存格值會發生什麼變化?

Excel 合併儲存格演示,顯示員工資料合併前後的對比,突顯跨列的儲存格。

為什麼合併儲存格有時會導致Excel衝突?

細胞合併是指將兩個或多個相鄰細胞合併成一個更大的細胞的過程。 細胞分離是相反的過程,即將融合的細胞分裂回原來的單一細胞。 此功能可實現靈活性、一致性和更好的數據分析。 在進行儲存格格式設定樣式設定時,合併儲存格有時會幹擾 Excel 的其他功能,例如排序和篩選。

Excel 衝突通常發生在合併儲存格與篩選範圍重疊,或嘗試對包含合併儲存格的資料進行排序時。 出現這些問題的原因是 Excel 將合併儲存格視為一個整體,這可能會幹擾該範圍內單一儲存格的正常運作。 了解這些限制有助於管理工作表和規劃電子表格結構。

在業務應用程式中,何時應該使用儲存格合併?

單元格合併對於創建跨越多個列的標題、格式化報告以獲得更好的視覺呈現以及創建具有更大輸入區域的表單特別有用。 它常用於發票範本、儀錶板和資料輸入表單中。 從商業應用程式匯出到 Excel時,合併儲存格有助於建立外觀專業的文件。

常見的商業場景包括: -報表標題:建立橫跨資料寬度的標題 -儀錶板設計:合併儲存格以顯示總計統計資料或關鍵績效指標 -表單建立:合併儲存格以適應更大的文字輸入區域 -發票範本:建立包含合併儲存格的專業佈局,用於顯示公司訊息

如何檢索工作表中所有合併區域?

檢索合併區域對於識別 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);
}
$vbLabelText   $csharpLabel

為什麼需要透過程式設計方式合併區域?

當您需要分析電子表格結構、驗證資料完整性或在其他工作表中複製格式時,合併區域會很有幫助。 對於處理範本或執行自動電子表格修改的應用程式來說,這至關重要。 當以程式設計方式編輯 Excel 檔案或建立需要保留現有格式的工具時,此功能至關重要。

合併區域的檢索用例包括: -模板處理:在填充資料之前識別模板中的合併區域 -格式複製:將合併模式從一個工作表複製到另一個工作表 資料驗證:確保處理包含合併儲存格的檔案時的資料完整性。 -報表產生:了解現有合併模式以建立動態報表

合併後的區域會依什麼順序回傳?

合併後的區域將按建立時間的先後順序返回。 在使用基於索引的取消合併操作時,這種排序非常重要。 了解此順序有助於實現撤銷/重做功能等特性,或在需要選擇特定範圍進行處理時提供協助。

如何使用IronXL在 Excel 中取消合併儲存格?

可以透過兩種不同的方法取消合併區域的合併。 第一種也是最簡單的方法是指定要取消合併的儲存格位址,例如 B3:B6

或者,您可以根據合併區域的索引取消合併儲存格。 合併區域依時間順序排列。 為此,首先檢索合併區域,並將所需的索引傳遞給 Unmerge 方法。 這種靈活性使您能夠在以程式設計方式處理 Excel 檔案時處理各種情況。

請注意儲存格位址必須與合併區域完全對應。 您無法取消合併區域中的某些部分的合併。

: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");
$vbLabelText   $csharpLabel

取消合併儲存格時常見的問題有哪些?

Excel電子表格比較圖,顯示了合併儲存格(左)與未合併儲存格(右)的員工數據

我應該使用哪一種取消合併方法?

當您知道合併區域的確切座標時,請使用基於位址的取消合併。 當以程式設計方式遍歷所有合併區域或確切位址可能有所不同時,請使用基於索引的取消合併。 以下對比資訊可協助您做出決定:

基於地址的取消合併:

  • 最適合具有已知合併模式的靜態模板
  • 非常適合處理標準化報告
  • 處理特定區域時,程式碼更簡潔

基於索引的取消合併:

  • 非常適合具有不同合併模式的動態電子表格
  • 在處理使用者上傳的檔案時非常有用
  • 更適合批量處理多個合併區域

對於涉及細胞操作的更複雜場景,請查閱IronXL API 參考文檔,以發現更多用於高效處理合併細胞的方法和屬性。

常見問題解答

如何使用 C# 在 Excel 中合併儲存格?

您可以使用 IronXl.Excel 的 Merge 方法,使用 C# 在 Excel 中合併儲存格。只需載入您的工作簿,使用儲存格範圍呼叫 Merge 方法 (例如 ws.Merge("B3:D3")),然後儲存檔案。這可將多個儲存格合併為一個較大的儲存格,而無需 Excel Interop。

合併儲存格時,儲存格值會發生什麼變化?

使用 IronXL 合併儲存格時,過程會在不刪除任何現有值或資料的情況下合併儲存格。合併後的單元格中只會顯示合併區域中第一個單元格的值,但 IronXL 仍允許您以程式化的方式存取所有原始值。

為什麼合併儲存格有時會造成 Excel 衝突?

當合併的儲存格與篩選範圍重疊,或嘗試排序包含合併儲存格的資料時,通常會發生 Excel 衝突。IronXL 可協助找出這些問題 - 合併篩選器範圍內的儲存格可能需要進行 Excel 修復,才能正確檢視試算表。

我可以取消合併先前已合併的單元格嗎?

是的,IronXL 提供了一個 Unmerge 方法,讓您可以將合併的單元分割回原始的獨立單元。您可以透過指定範圍位址或索引來解除合併,為資料分析和格式調整提供彈性。

我需要安裝 Microsoft Excel 才能以程式方式合併儲存格嗎?

不,IronXL 可讓您在 C# 中合併和解除合併 Excel 單元格,而無需安裝 Microsoft Excel 或 Excel Interop。這個函式庫可獨立運作,非常適合伺服器環境和自動化流程。

合併儲存格對於建立格式化的標頭有用嗎?

是的,IronXl.Excel 的合併功能在建立有格式化標題的試算表或使用 Excel 範本時特別有用。它可讓您透過合併標題和節段標題的儲存格,來建立外觀專業的版面。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

準備好開始了嗎?
Nuget 下載 1,890,100 | 版本: 2026.3 剛剛發布

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXl.Excel
執行範例 觀看您的資料變成試算表。