如何在 Excel 中分组和取消分组行与列 | IronXL

如何在 C# 中分组和取消分组行和列

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

IronXL.Excel 提供了使用 C# 以编程方式对 Excel 电子表格中的行和列进行分组和解组的简单方法,实现了无 Interop 依赖性的可折叠部分,从而更好地组织数据。

在 Excel 中,分组功能通过创建可折叠的行或列部分来帮助组织数据。 这简化了大型数据集的导航和分析。 相反,取消分组功能会恢复到原始的未分组状态。 这些功能增强了数据管理,并允许对电子表格的特定部分进行重点检查。

IronXL 实现了编程式分组和解组,无需在 C# .NET 中进行 Interop。 无论是构建财务报告、管理库存数据还是整理员工记录,IronXL 的分组功能都能灵活地创建分层数据结构,用户可以根据需要展开或折叠这些结构。

快速入门:轻松分组和解组行与列

开始在几秒钟内组织您的Excel数据——只需加载工作簿,在其工作表上调用UngroupColumns,然后保存。 IronXL 使分组和解分组行和列的入门操作直观而快速。对于复杂的电子表格,请查看我们的工作表管理指南,了解更多组织技巧。

  1. 使用 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创建行组?

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

输出

选中第 1-9 行进行分组的 Excel 工作表,显示带有 ID、姓名和职位列的员工数据

对于更复杂的情况,您可以在同一工作表中创建嵌套组或多个独立组。 了解有关选择范围以有效处理特定数据部分的更多信息。

如何使用UngroupRows移除行组?

使用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

输出

选中第 2-9 行(红色高亮)的 Excel 电子表格,显示分组前的员工数据
Excel 电子表格显示分组的第 2-9 行员工数据,分组控件高亮显示

如何在 Excel 中分组和解分组列?

在处理包含多个数据类别的宽电子表格时,列分组尤为重要。 例如,在管理财务数据时,可以按季度对每月的列进行分组;在处理员工数据时,可以将个人信息列与绩效指标列分开。 有关其他数据操作技术,请参阅我们的添加行和列指南。

如何使用GroupColumns创建列组?

列可以像行一样进行分组。 使用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 电子表格,红色箭头高亮显示 C 列(职位)以进行分组演示

如何使用UngroupColumns移除列组?

与取消分组行类似,您可以使用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 电子表格,红色箭头指向职位列以进行分组演示
带有分组列的 Excel 电子表格,显示员工数据,列分组控件用红色箭头高亮显示

高级分组技术

IronXL.Excel 对于更复杂的 Excel 自动化场景,您可以将分组与 IronXL.Excel 的其他功能结合起来。 下面的示例演示了如何创建多个嵌套组:

:path=/static-assets/excel/content-code-examples/how-to/group-and-ungroup-rows-columns-6.cs
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的``功能确保分组内容正确显示

对于复杂的企业应用程序,您可能还需要在包含敏感分组数据的工作簿上实现``,同时保持分组结构。

摘要

IronXL.ExcelIronXL.Excel IronXL.Excel 的分组和解组功能为开发人员提供了以编程方式组织 Excel 数据的强大工具。 无论是构建报表系统、数据分析工具还是 Excel 自动生成器,这些功能都能让您创建专业、用户友好的电子表格,增强数据的可读性和导航性。 IronXL.Excel 能够以编程方式控制数据组织,而无需依赖 Excel Interop,这使得 IronXL 成为处理电子表格数据的现代 .NET 应用程序的必备工具。

常见问题解答

如何使用 C# 在 Excel 中分组行?

您可以使用 IronXL.Excel 的 GroupRows 方法对 Excel 中的行进行分组。只需加载工作簿,在工作表中调用 GroupRows,并指定要分组的行的索引位置,然后保存文件即可。例如IronXl.WorkBook.Load("data.xlsx").DefaultWorkSheet.GroupRows(0, 4).WorkBook.SaveAs("grouped.xlsx");

能否在 Excel 中以编程方式对列进行分组和取消分组?

是的,IronXL.Excel 提供了 GroupColumns 和 UngroupColumns 方法,可使用 C# 以编程方式对 Excel 电子表格中的列进行分组和取消分组。这些方法的工作原理与行分组类似,可让您创建可折叠的列部分,而无需 Interop 依赖性。

哪些类型的数据组织受益于行和列分组?

IronXL 的分组功能特别适用于组织分层数据结构,如带有子类别的财务报告、组织结构图、带有阶段的项目时间表、员工记录和库存数据。它有助于创建可折叠的部分,从而简化大型数据集的导航和分析。

在 C# 中分组行和列需要 Microsoft Office Interop 吗?

不,IronXL 无需 Microsoft Office Interop 即可对行和列进行编程式分组和解组。这使其成为 C# .NET 应用程序中更轻量级、更便于部署的解决方案。

能否对多组行或列应用分组?

是的,使用 IronXL,您可以对相同或不同的行列组多次使用 GroupRows 和 GroupColumns 方法。这种灵活性使您可以根据需要创建具有多个可折叠部分的复杂分层数据结构。

保存分组 Excel 数据时支持哪些文件格式?

IronXL.Excel 允许您将分组行和列的 Excel 文件导出为各种文件格式。应用分组操作后,您可以使用 SaveAs 方法保存工作簿,以在输出文件中保持分组结构。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 2,150,290 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronXL.Excel
运行示例 观看您的数据变成电子表格。