对行进行分组并创建小计

分组行

对特定数量的行进行分组:

  1. 将 Aspose.Cells.GridWeb 控件添加到 Web 窗体。
  2. 访问工作表。
  3. 在行中选择所需的单元格数。
  4. 对行进行分组。

对行进行分组时,展开/折叠按钮会显示在行的摘要行的顶部。您可以更改方向设置。 WebWorksheet.IsSummaryRowBelow 属性是一个布尔值属性。将其设置为 false(默认),摘要行将位于详细信息行之上。将其设置为 true,摘要行将位于详细信息行下方。单击展开/折叠按钮以展开或折叠分组的行。

以下示例对从第 2 行到第 10 行的行进行分组。

分组行

待办事项:图片_替代_文本

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Group the rows

sheet.Cells.GroupRows(1, 9);

嵌套分组行

您可以在对一组行进行分组时创建组织级别。您可以在分组的行中对行进行分组。以下示例显示嵌套分组行。

分组行

待办事项:图片_替代_文本

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Group the rows

sheet.Cells.GroupRows(1, 9);

// Create nested group of rows

sheet.Cells.GroupRows(4, 6);

内部流程:控制如何运作?

工作表的每一行都有一个大纲编号。大纲编号的默认值为零。每次对行进行分组时,大纲编号增加 1。您可以通过调用 GridWorksheet.Cells.GetRowOutlineLevel() 方法获取大纲编号。

取消组合行

Aspose.Cells.GridWeb 允许您取消分组行。

要取消组合特定数量的行:

  1. 在工作表的行中选择多个单元格以取消分组。
  2. 取消组合行。

以下示例取消对从第 2 行到第 10 行的行进行分组。

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Ungroup the rows

sheet.Cells.UngroupRows(1, 9); 

创建小计

该控件的小计功能可以将工作表中的行与指定的列进行分组,并计算列的汇总。 Aspose.Cells.GridWeb 可以自动计算列表的小计值。当您实现小计时,该控件勾勒出列表,以便您可以显示和隐藏每个小计的详细信息行。在添加小计之前,对您希望小计的字段进行排序。要创建小计,请使用任何版本的重载 WebWorksheet.CreateSubtotal 方法。

 public void CreateSubtotal

(

           int columnNameRowIndex,

           int dataRows,

           int groupByColumnIndex,

           SubtotalFunction subtotalFunction,

           int[]subtotalColumnIndexList

);

参数表

不。 参数名称 描述
1 列名行索引 列名行的行索引。
2 数据行 数据行数。
3 groupByColumnIndex 要分组的列的列索引。
4 小计功能 小计函数类型枚举。
5 小计列索引列表 要小计的列索引。

汇总函数列表

{[SubtotalFunction}} 枚举支持多种类型的汇总函数:

不。 函数名称 描述
1 平均的 计算值的平均值。
2 数数 计算单元格中的数值。
3 伯爵 计算单元格中的非数字数据。
4 最大限度 计算最大值。
5 最小值 计算最小值。
6 产品 计算值的乘积。
7 计算值的总和。
以下示例生成小计,计算按工作表中第二列分组的非数字值。

小计

待办事项:图片_替代_文本

 sheet.CreateSubtotal(0, sheet.Cells.MaxRow, 1, SubtotalFunction.COUNTA, new int[]{ 1, 2, 3, 4, 5 });

删除小计

要删除小计,请使用 WebWorksheet.RemoveSubtotal 方法。以下示例删除小计。

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

//Remove the subtotals

sheet.RemoveSubtotal();

关于 SUBTOTAL 函数

GridWeb 控件使用公式函数 SUBTOTAL 来计算小计值。

语法:SUBTOTAL(function_num, ref1, ref2, …)

function_num 是一个数字,指定小计计算中使用的函数类型。

1 平均的
2 数数
3 伯爵
4 最大限度
5 最小值
6 产品
7
ref1、ref2 是要小计的区域。如果 ref1、ref2、… 包含其他小计函数,则忽略引用的单元格以避免重复计算。