Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 数据透视表 >
如何:对数据透视表中的项进行排序

下面的示例演示如何按标签和汇总值对数据透视表字段中的项目进行排序

对项目标签进行排序

若要按升序或降序对特定数据透视表字段中的项进行排序,请将相应的 PivotFieldSortType 枚举成员分配给 PivotField.SortType 属性。

例如,以下代码按升序对“产品”字段的项目进行排序。

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("Product")
'对“Product”字段中的项目进行排序。
field.SortType = DevExpress.Spreadsheet.PivotFieldSortType.Ascending

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["Product"];
// 对“Product”字段中的项目进行排序。
field.SortType = DevExpress.Spreadsheet.PivotFieldSortType.Ascending;

按汇总值对项目进行排序

除了对项目标签进行排序外,还可以根据数据透视表的数据区域中的值对行或列字段中的项目进行排序。为此,请为要排序的字段调用 PivotField.SortItems 方法并传递以下参数。

注意

如果尝试对当前未在报表中显示为行或列字段的字段应用排序,或者指定的排序设置无效,则会发生异常。若要查看应用于特定字段的排序选项,请使用该字段的PivotField.Sort属性。

下面的代码示例演示如何在第一季度按销售额值降序对产品进行排序。

Vb.Net
'通过数据透视表在集合中的索引访问数据透视表。
Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables(0)

'创建对“Quarter”字段的“Q1”项目的引用。
Dim item As New DevExpress.Spreadsheet.PivotItemReference(0, 0)
'使用“Q1”列中的值,按照“Amount总和”字段的降序对“Product”字段进行排序。
pivotTable.Fields("Product").SortItems(DevExpress.Spreadsheet.PivotFieldSortType.Descending, 0, item)

C#
// 通过数据透视表在集合中的索引访问数据透视表。
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables[0];

// 创建对“Quarter”字段的“Q1”项目的引用。
DevExpress.Spreadsheet.PivotItemReference item = new DevExpress.Spreadsheet.PivotItemReference(0, 0);
// 使用“Q1”列中的值,按照“Amount总和”字段的降序对“Product”字段进行排序。
pivotTable.Fields["Product"].SortItems(DevExpress.Spreadsheet.PivotFieldSortType.Descending, 0, item);

下图显示了代码的执行结果(工作簿在 Microsoft® Excel® 中打开)。