如何使用IronXL在 C# 中合併和取消合併儲存格:XLSX檔案操作
IronXL使 C# 開發人員能夠使用簡單的方法(例如 Merge("B3:D3") 和 Unmerge())完成XLSX檔案操作,將多個 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時,合併儲存格有助於建立外觀專業的文件。
常見的商業場景包括: -報表標題:建立橫跨資料寬度的標題 -儀錶板設計:合併儲存格以顯示總計統計資料或關鍵績效指標 -表單建立:合併儲存格以適應更大的文字輸入區域 -發票範本:建立包含合併儲存格的專業佈局,用於顯示公司訊息
如何檢索工作表中所有合併區域?
檢索合併區域對於識別 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")
取消合併儲存格時常見的問題有哪些?
我應該使用哪一種取消合併方法?
當您知道合併區域的確切座標時,請使用基於位址的取消合併。 當以程式設計方式遍歷所有合併區域或確切位址可能有所不同時,請使用基於索引的取消合併。 以下對比資訊可協助您做出決定:
基於地址的取消合併:
- 最適合具有已知合併模式的靜態模板
- 非常適合處理標準化報告
- 處理特定區域時,程式碼更簡潔
基於索引的取消合併:
- 非常適合具有不同合併模式的動態電子表格
- 在處理使用者上傳的檔案時非常有用
- 更適合批量處理多個合併區域
對於涉及細胞操作的更複雜場景,請查閱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 範本時特別有用。它可讓您透過合併標題和節段標題的儲存格,來建立外觀專業的版面。

