如何在 C# 中使用 IronXL 合併與取消合併儲存格
IronXL 讓 C# 開發人員能夠透過 Merge("B3:D3") 和 Unmerge() 等簡單方法,將多個 Excel 儲存格合併為一個較大的儲存格,或將其拆分回個別儲存格,在無需 Excel Interop 的情況下,提供格式設定與資料呈現的靈活性。
快速入門:透過單一呼叫合併一組儲存格
只需幾行程式碼,您即可載入工作簿、使用 IronXL 的 Merge 方法合併指定的儲存格範圍,並儲存檔案。此功能專為開發人員設計,讓您無需 Excel Interop 即可輕鬆開始合併儲存格。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以合併與取消合併儲存格
- 載入現有試算表或建立新試算表
- 使用
Merge方法來合併所需的範圍 - 透過指定範圍位址或索引來呼叫
Unmerge方法 - 匯出修改後的試算表
如何使用 C# 在 Excel 中合併儲存格?
可使用 Merge 方法來合併一組儲存格。 此操作會合併儲存格而不刪除任何現有值或資料,但僅會顯示合併區域中第一個儲存格的值。 然而,在 IronXL 中,合併儲存格的數值仍可被存取。 此功能在建立具有格式化標題的試算表,或處理 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")
合併時儲存格的數值會如何處理?
為何合併儲存格有時會導致 Excel 發生衝突?
合併儲存格是指將兩個或多個相鄰儲存格合併為單一較大儲存格的過程。 取消合併儲存格是與合併儲存格相反的過程,即將合併後的儲存格重新分割回原始的獨立儲存格。 此功能可提供靈活性、一致性,並提升資料分析效能。 在處理儲存格格式設定與樣式時,合併儲存格有時會干擾 Excel 的其他功能,例如排序和篩選。
Excel 衝突通常發生在合併儲存格與篩選範圍重疊時,或嘗試對包含合併儲存格的資料進行排序時。 這些問題的產生,是因為 Excel 會將合併的儲存格視為單一單位,這可能會干擾該範圍內個別儲存格的正常操作。 了解這些限制有助於管理工作表及規劃試算表結構。
在商業應用程式中,何時該使用儲存格合併功能?
儲存格合併對於建立橫跨多欄位的標題、格式化報告以提升視覺呈現效果,以及建立具有較大輸入區域的表單,特別有用。 它常被應用於發票範本、儀表板及資料輸入表單中。 從商業應用程式匯出至 Excel 時,合併儲存格有助於建立外觀專業的文件。
常見的商業情境包括:
- 報表標題:建立橫跨資料全寬的標題
- 儀表板設計:合併儲存格以呈現摘要統計資料或關鍵績效指標 (KPI)
- 表單建立:合併儲存格以擴充文字輸入區域
- 發票範本:建立包含合併儲存格以填入公司資訊的 Professional 版面配置
如何在工作表中擷取所有合併區域?
擷取合併區域對於識別 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);
}
Imports IronXL
Imports System.Collections.Generic
Imports System
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Apply merge
workSheet.Merge("B4:C4")
workSheet.Merge("A1:A4")
workSheet.Merge("A6:D9")
' Retrieve merged regions
Dim retrieveMergedRegions As List(Of IronXL.Range) = workSheet.GetMergedRegions()
For Each mergedRegion As IronXL.Range In retrieveMergedRegions
Console.WriteLine(mergedRegion.RangeAddressAsString)
Next
為何需要透過程式碼取得合併區域?
當您需要分析試算表結構、驗證資料完整性,或在其他工作表中複製格式時,合併區域的功能將能提供協助。 這對於處理範本或執行自動化試算表修改的應用程式至關重要。 此功能在程式化編輯 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");
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")
解除合併儲存格時常見哪些問題?
我應該使用哪種 Unmerge 方法?
當您確知合併區域的精確座標時,請使用基於座標的解除合併功能。 當透過程式化方式遍歷所有合併區域,或確切位址可能有所不同時,請使用基於索引的解除合併功能。 以下提供比較參考,供您決策:
基於地址的合併解除:
- 最適合具有已知合併模式的靜態範本
- 處理標準化報告時的理想選擇
- 處理特定區域時,程式碼更為簡潔
基於索引的解合併:
- 非常適合具有各種合併模式的動態試算表
- 處理使用者上傳的檔案時相當實用
- 更適合批次處理多個合併區域
若需處理更複雜的儲存格操作情境,請參閱 IronXL API 參考文件,以探索更多用於高效處理合併儲存格的方法與屬性。
常見問題
如何使用 C# 在 Excel 中合併儲存格?
您可以透過 IronXL 的 Merge 方法,使用 C# 在 Excel 中合併儲存格。只需載入工作簿,呼叫 Merge 方法並傳入儲存格範圍(例如:ws.Merge("B3:D3")),然後儲存檔案即可。此方法可將多個儲存格合併為一個較大的儲存格,且無需使用 Excel Interop。
合併儲存格時,儲存格的數值會如何處理?
Using IronXL to merge cells, the process combines the cells without erasing any existing values or data. The merged cell displays the value of the first cell in the merged region, but IronXL still allows you to access all the original values programmatically.
為何合併儲存格有時會導致 Excel 發生衝突?
Excel 衝突通常發生在合併儲存格與篩選範圍重疊時,或嘗試對包含合併儲存格的資料進行排序時。IronXL 可協助識別這些問題——若在篩選範圍內合併儲存格,可能需要修復 Excel 才能正確檢視試算表。
我可以取消先前已合併的儲存格嗎?
是的,IronXL 提供 Unmerge 方法,可將合併的儲存格拆分為原始的個別儲存格。您可以透過指定範圍位址或索引來執行拆分,為資料分析和格式調整提供靈活性。
我需要安裝 Microsoft Excel 才能透過程式碼合併儲存格嗎?
不,IronXL 允許您在 C# 中合併與拆分 Excel 儲存格,無需安裝 Microsoft Excel 或 Excel Interop。此程式庫可獨立運作,非常適合用於伺服器環境與自動化流程。
合併儲存格對於建立格式化的標題是否有幫助?
是的,IronXL 的合併功能在建立具有格式化標題的試算表,或處理 Excel 範本時特別實用。它能讓您透過合併儲存格來建立標題和區段標題,從而打造出專業的外觀佈局。

