如何在 Excel 中合併與取消合併列與欄 | IronXL

如何在 C# 中對行與列進行分組與取消分組

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

IronXL 提供簡易的方法,可透過 C# 程式化地將 Excel 試算表中的列與欄進行分組與取消分組,無需依賴 Interop 即可建立可折疊區段,從而更有效地組織資料。

在 Excel 中,分組功能可透過建立可折疊的列或欄區段,協助整理資料。 這能簡化大型資料集的瀏覽與分析。 相對地,取消分組功能則會恢復原始的未分組狀態。 這些功能可強化資料管理,並允許針對電子表格的特定區段進行深入檢視。

IronXL 可在 C# .NET 環境中實現程式化的分組與取消分組,無需使用 Interop。 無論是建立財務報表、管理庫存資料,還是整理員工紀錄,IronXL 的分組功能都能提供靈活性,讓使用者能根據需求展開或收合資料,建立階層式資料結構。

快速入門:輕鬆群組與取消群組列與欄

幾秒鐘內即可開始整理您的 Excel 資料——只需載入工作簿,呼叫 ,, 至其工作表中,並儲存。 IronXL 讓您能直覺且快速地開始進行列與欄的群組化與取消群組化。若需處理複雜的試算表,請參閱我們的"工作表管理指南",以獲取更多組織技巧。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 請複製並執行此程式碼片段。

    IronXl.WorkBook.Load("data.xlsx").DefaultWorkSheet.GroupRows(0, 4).WorkBook.SaveAs("grouped.xlsx");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronXL

    arrow pointer


如何在 Excel 中對行進行分組與取消分組?

請注意以下提及的所有索引位置均採用零起始索引。 (分組與取消分組功能僅適用於包含數值的儲存格。)}]

在處理階層式資料結構時,例如組織圖、含子類別的財務報表,或包含各階段的專案時程表,Excel 的"分組"功能特別實用。 IronXL 透過其直觀的 API,讓這個過程變得簡單明瞭。 若需進行更進階的試算表操作,請參閱我們詳盡的 IronXL 文件

如何使用 GroupRows 建立行群組?

`` 方法接受行索引位置作為參數,用以執行分組操作。 如有需要,您可以針對相同或不同的行組多次使用此方法。 這在將資料整理成邏輯分段時特別有用,使用者可透過展開或收合這些分段來提升可讀性。

在處理員工資料、財務紀錄或庫存清單時,透過"行分組"功能,您可以建立可折疊的區塊,從而提升試算表的瀏覽體驗。 此方法接受兩個參數:起始列索引與結束列索引(兩者皆包含在內)。

:path=/static-assets/excel/content-code-examples/how-to/group-and-ungroup-rows-columns-group-row.cs
using IronXL;

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

// Ungroup row 1-9
workSheet.GroupRows(0, 7);

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

' Load existing spreadsheet
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

' Ungroup row 1-9
workSheet.GroupRows(0, 7)

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

輸出

Excel sheet with rows 1-9 selected for grouping, showing employee data with ID, name, and job title columns

針對更複雜的情境,您可以在同一工作表內建立嵌套群組或多個獨立群組。 進一步了解如何選取範圍,以有效處理特定資料區段。

如何使用 UngroupRows 移除行群組?

請使用 `` 方法來取消先前已分組的列。 此方法亦可透過將其套用至群組的中間位置,將群組分割為兩部分。然而,除非再次進行分組,否則所產生的區段並不會形成獨立的群組。

當您需要重新組織資料結構,或為可能不需要分組層級的不同受眾準備試算表時,取消分組功能至關重要。 此方法可讓您靈活地動態管理 Excel 資料的組織結構。

:path=/static-assets/excel/content-code-examples/how-to/group-and-ungroup-rows-columns-ungroup-row.cs
using IronXL;

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

// Ungroup row 3-5
workSheet.UngroupRows(2, 4);

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

' Load existing spreadsheet
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

' Ungroup row 3-5
workSheet.UngroupRows(2, 4)

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

輸出

Excel spreadsheet with rows 2-9 selected (highlighted in red) showing employee data before grouping
Excel spreadsheet showing grouped rows 2-9 with employee data and grouping controls highlighted

如何在 Excel 中合併與取消合併欄位?

當處理包含多個資料類別的寬幅試算表時,欄位分組功能尤為實用。 例如,在管理財務資料時,您可能會將每月欄位按季度分組;而在處理員工資料時,則會將個人資訊欄位與績效指標分開歸類。 如需更多資料處理技巧,請參閱我們關於新增列與行的指南。

如何使用 GroupColumns 建立欄位群組?

欄位可與列同樣進行分組。 請使用 `` 方法,透過指定索引號或欄位字元來將欄位分組。 此靈活性讓您能以最適合您應用程式的格式處理欄位參照。

在生成需要顯示摘要資料並可深入鑽取至詳細資訊的報表時,能夠透過程式碼對欄位進行分組的功能極為寶貴。 這在財務報表、庫存管理及資料分析應用程式中相當常見。

:path=/static-assets/excel/content-code-examples/how-to/group-and-ungroup-rows-columns-group-column.cs
using IronXL;

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

// Apply grouping to column A-F
workSheet.GroupColumns(0, 5);

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

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

' Apply grouping to column A-F
workSheet.GroupColumns(0, 5)

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

輸出

Excel spreadsheet with employee data showing column C (Job Title) highlighted by red arrow for grouping demonstration

如何使用 UngroupColumns 移除欄位群組?

類似於拆分行,您可以使用 `` 方法來拆分一組欄位。 若在欄位群組的中間套用此方法,將會將其分割為兩部分。 此功能在重新整理報表或根據不同的檢視偏好調整試算表時特別有用。

在處理複雜的試算表時,取消分組可讓您暫時扁平化層級結構,以便執行排序或對所有欄位套用公式等操作。

:path=/static-assets/excel/content-code-examples/how-to/group-and-ungroup-rows-columns-ungroup-column.cs
using IronXL;

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

// Ungroup column C-D
workSheet.UngroupColumn("C", "D");

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

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

' Ungroup column C-D
workSheet.UngroupColumn("C", "D")

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

輸出

Excel spreadsheet with employee data and red arrow pointing to Job Title column for grouping demonstration
Excel spreadsheet with grouped columns showing employee data and column grouping controls highlighted with red arrows

進階分組技術

針對更複雜的 Excel 自動化情境,您可以將分組功能與其他 IronXL 功能結合使用。 以下範例展示如何建立多個嵌套群組:

using IronXL;

// Create hierarchical grouping for financial data
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create main category groups
workSheet.GroupRows(1, 5);   // Revenue section
workSheet.GroupRows(7, 11);  // Expenses section
workSheet.GroupRows(13, 17); // Summary section

// Create sub-groups within expenses
workSheet.GroupRows(8, 9);   // Operating expenses
workSheet.GroupRows(10, 11); // Administrative expenses

// Group quarterly columns
workSheet.GroupColumns(1, 3);   // Q1 (Jan-Mar)
workSheet.GroupColumns(4, 6);   // Q2 (Apr-Jun)
workSheet.GroupColumns(7, 9);   // Q3 (Jul-Sep)
workSheet.GroupColumns(10, 12); // Q4 (Oct-Dec)

workBook.SaveAs("hierarchical_financial_report.xlsx");
using IronXL;

// Create hierarchical grouping for financial data
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create main category groups
workSheet.GroupRows(1, 5);   // Revenue section
workSheet.GroupRows(7, 11);  // Expenses section
workSheet.GroupRows(13, 17); // Summary section

// Create sub-groups within expenses
workSheet.GroupRows(8, 9);   // Operating expenses
workSheet.GroupRows(10, 11); // Administrative expenses

// Group quarterly columns
workSheet.GroupColumns(1, 3);   // Q1 (Jan-Mar)
workSheet.GroupColumns(4, 6);   // Q2 (Apr-Jun)
workSheet.GroupColumns(7, 9);   // Q3 (Jul-Sep)
workSheet.GroupColumns(10, 12); // Q4 (Oct-Dec)

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

' Create hierarchical grouping for financial data
Dim workBook As WorkBook = WorkBook.Load("financial_report.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

' Create main category groups
workSheet.GroupRows(1, 5)   ' Revenue section
workSheet.GroupRows(7, 11)  ' Expenses section
workSheet.GroupRows(13, 17) ' Summary section

' Create sub-groups within expenses
workSheet.GroupRows(8, 9)   ' Operating expenses
workSheet.GroupRows(10, 11) ' Administrative expenses

' Group quarterly columns
workSheet.GroupColumns(1, 3)   ' Q1 (Jan-Mar)
workSheet.GroupColumns(4, 6)   ' Q2 (Apr-Jun)
workSheet.GroupColumns(7, 9)   ' Q3 (Jul-Sep)
workSheet.GroupColumns(10, 12) ' Q4 (Oct-Dec)

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

此方法可建立一份條理分明的財務報告,使用者可根據需要收合或展開各區段。 如需更多格式設定選項,請參閱我們的"條件格式設定"指南,以在分組區段中突顯重要資料。

最佳實踐與效能考量

在處理分組與取消分組操作時,請遵循以下最佳實務:

  1. 規劃結構:在實作前先設計分組層級,以避免過多的重新分組操作
  2. 效能:群組操作的資源消耗較低,但在處理大型資料集時,請將操作批次化
  3. 使用者體驗:建立群組時請考量最終使用者的觀點——邏輯分組有助於提升資料理解度
  4. 與其他功能結合:善用 IronXL 的 `` 功能,確保分組內容能正確顯示

對於複雜的Enterprise級應用程式,您可能還需要實作 功能,或 功能,同時維持分組結構。

摘要

IronXL 的分組與取消分組功能,為開發人員提供了強大的工具,可透過程式化方式整理 Excel 資料。 無論是建置報表系統、資料分析工具,還是自動生成 Excel 的程式,這些功能都能協助您建立 Professional 且易於使用的試算表,從而提升資料的可讀性與瀏覽便利性。 IronXL 具備無需依賴 Excel Interop 即可透過程式化方式控制資料組織的能力,使其成為處理試算表資料的現代 .NET 應用程式不可或缺的工具。

常見問題

如何使用 C# 在 Excel 中對行進行分組?

您可以使用 IronXL 的 GroupRows 方法在 Excel 中對行進行分組。只需載入工作簿,在工作表上呼叫 GroupRows 方法並傳入要分組的行索引位置,最後儲存檔案即可。例如:IronXl.WorkBook.Load("data.xlsx").DefaultWorkSheet.GroupRows(0, 4).WorkBook.SaveAs("grouped.xlsx");

我能否透過程式碼在 Excel 中對欄位進行分組與取消分組?

是的,IronXL 提供了 GroupColumns 和 UngroupColumns 方法,可透過 C# 程式碼對 Excel 試算表中的欄位進行分組與取消分組。這些方法的運作方式類似於列分組,讓您無需依賴 Interop 即可建立可摺疊的欄位區塊。

哪些類型的資料組織方式能從列與欄分組中受益?

IronXL 的分組功能對於整理層級資料結構特別有用,例如包含子類別的財務報告、組織圖、分階段的專案時程表、員工紀錄以及庫存資料。此功能有助於建立可折疊區塊,從而簡化大型資料集的導覽與分析。

在 C# 中要將行和列分組,是否需要 Microsoft Office Interop?

不,IronXL 允許透過程式化方式對行與列進行分組與取消分組,無需依賴 Microsoft Office Interop。這使其成為更輕量且易於部署的解決方案,適用於 C# .NET 應用程式。

我可以將分組功能套用至多組行或列嗎?

是的,使用 IronXL 時,您可以針對相同或不同的行與列群組,多次使用 GroupRows 和 GroupColumns 方法。這種靈活性讓您能根據需求,建立包含多個可折疊區段的複雜階層式資料結構。

儲存分組的 Excel 資料時,支援哪些檔案格式?

IronXL 允許您將包含分組行與列的 Excel 檔案匯出為各種檔案格式。執行分組操作後,您可以使用 SaveAs 方法儲存工作簿,以在輸出檔案中保留分組結構。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,052,917 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

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