Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 数据透视表 >
如何:数据透视表中的小计字段

本主题介绍如何管理数据透视表中的小计。当您向报表中添加多个行和/或列字段时,外部字段会自动显示小计。

选择要执行的任务。

显示或隐藏数据透视表的小计

若要显示或隐藏数据透视表中的小计,请使用可通过 PivotTable.Layout 属性访问的 PivotLayout 对象的以下方法。

方法 描述
PivotLayout.ShowAllSubtotals 显示数据透视表中的所有小计。该方法的 topOf集团参数以紧凑或大纲形式指定外行字段的小计位置。
PivotLayout.HideAllSubtotals 隐藏数据透视表中的所有小计。

下面的代码示例显示数据透视表中的所有小计。“类别”行字段的小计显示在字段中每个项目的底部。

Vb.Net
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("Report1")
workbook.Worksheets.ActiveWorksheet = worksheet

'按数据透视表在集合中的名称访问数据透视表。
Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables("PivotTable1")
'在每组底部显示所有小计。
pivotTable.Layout.ShowAllSubtotals(False)

C#
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["Report1"];
workbook.Worksheets.ActiveWorksheet = worksheet;

// 按数据透视表在集合中的名称访问数据透视表。
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
//在每组底部显示所有小计。
pivotTable.Layout.ShowAllSubtotals(False);

下图显示了生成的报表(工作簿在 Microsoft® Excel® 中打开)。

修改数据透视表字段的小计

下表描述了可用于指定和调整报表中特定行或列字段的小计的属性和方法。

成员 描述
PivotField.SetSubtotalAutomatic 显示给定字段的自动小计。
PivotField.SetSubtotal 允许您更改默认汇总计算或显示给定字段的多个小计。要删除字段的小计,请将PivotSubtotal函数。没有值作为参数添加到方法中。
PivotSubtotalFunctions 指定用于计算数据透视表字段小计的汇总函数。
PivotFieldLayout.SubtotalOnTop 指定以大纲或紧凑形式显示的外行字段的小计位置。您可以在字段项的顶部或底部显示小计。
PivotField.SubtotalCaption 指定要在字段的小计行或列标题中显示的文本。

下面的示例演示如何使用多个函数对“Category”行字段进行小计。为此,请将所需的 PivotSubtotalFunctions 枚举值与按位 OR 运算符组合在一起。

注意

不能更改包含计算项的字段的小计函数。在本例中,将抛出一个System.InvalidOperationException 无效操作异常。

Vb.Net
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("Report1")
workbook.Worksheets.ActiveWorksheet = worksheet

'按数据透视表在集合中的名称访问数据透视表。
Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables("PivotTable1")
'按数据透视字段在集合中的名称访问数据透视字段
Dim field As DevExpress.Spreadsheet.PivotField = pivotTable.Fields("Category")
'显示字段的多个小计。
field.SetSubtotal(DevExpress.Spreadsheet.PivotSubtotalFunctions.Sum Or DevExpress.Spreadsheet.PivotSubtotalFunctions.Average)

C#
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["Report1"];
workbook.Worksheets.ActiveWorksheet = worksheet;

// 按数据透视表在集合中的名称访问数据透视表。
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
// 按数据透视字段在集合中的名称访问数据透视字段
DevExpress.Spreadsheet.PivotField field = pivotTable.Fields["Category"];
// 显示字段的多个小计。
field.SetSubtotal(DevExpress.Spreadsheet.PivotSubtotalFunctions.Sum | DevExpress.Spreadsheet.PivotSubtotalFunctions.Average);

下图显示了生成的报表(工作簿在 Microsoft® Excel® 中打开)。