Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 数据透视表 >
如何:创建数据透视表

以下示例演示如何使用数据透视表创建数据透视表,该数据透视表汇总单元格区域中的数据。

若要创建新的数据透视表,请使用为报表应位于的工作表访问的 Worksheet.PivotTables 集合的 PivotTableCollection.Add 方法。可以使用单元格区域作为数据透视表的数据源,也可以将其基于现有数据透视表的数据缓存(有关详细信息,请参阅数据透视缓存)。

要用数据填充创建的数据透视表,请向其添加必要的字段。所有数据透视字段都存储在 PivotTable.Fields 属性返回的 PivotFieldCollection 集合中。若要向数据透视表添加字段,请在集合中按其名称访问必填字段(默认情况下,字段名称源自源区域中的列标签),并将其移动到下表中列出的四个数据透视表区域之一。

将字段添加到 执行此操作

行轴区域

使用PivotTable.RowFields集合的PivotFieldReferenceCollection.Add方法

列轴区域

使用PivotTable.ColumnFields集合的PivotFieldReferenceCollection.Add方法

报表筛选器区域

使用PivotTable.PageFields集合的PivotPageFieldCollection.Add方法

数据区

使用PivotTable.DataFields集合的PivotDataFieldCollection.Add方法

使用单元格区域作为数据源创建数据透视表

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

'使用单元格区域“A1:D41”作为数据源创建数据透视表。
Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables.Add(sourceWorksheet("A1:D41"), worksheet("B2"))

pivotTable.BeginUpdate()

'将“Category”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields("Category"))
'将“Product”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields("Product"))
'将“Sales”字段添加到数据区域。
pivotTable.DataFields.Add(pivotTable.Fields("Sales"))

pivotTable.EndUpdate()

C#
DevExpress.Spreadsheet.Worksheet sourceWorksheet = workbook.Worksheets["Data1"];
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets.Add();
workbook.Worksheets.ActiveWorksheet = worksheet;

// 使用单元格区域“A1:D41”作为数据源创建数据透视表。
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables.Add(sourceWorksheet["A1:D41"], worksheet["B2"]);

pivotTable.BeginUpdate();

// 将“Category”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields["Category"]);
// 将“Product”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields["Product"]);
// 将“Sales”字段添加到数据区域。
pivotTable.DataFields.Add(pivotTable.Fields["Sales"]);

pivotTable.EndUpdate();

基于数据透视表缓存创建数据透视表

Vb.Net
'基于指定的数据透视表缓存创建数据透视表。
Dim cache As DevExpress.Spreadsheet.PivotCache = workbook.Worksheets("Report1").PivotTables("PivotTable1").Cache
Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables.Add(cache, worksheet("B2"))

pivotTable.BeginUpdate()

'将“Category”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields("Category"))
'将“Product”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields("Product"))
'将“Sales”字段添加到数据区域。
pivotTable.DataFields.Add(pivotTable.Fields("Sales"))

pivotTable.EndUpdate()

C#
// 基于指定的数据透视表缓存创建数据透视表。
DevExpress.Spreadsheet.PivotCache cache = workbook.Worksheets["Report1"].PivotTables["PivotTable1"].Cache;
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables.Add(cache, worksheet["B2"]);

pivotTable.BeginUpdate();

// 将“Category”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields["Category"]);
// 将“Product”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields["Product"]);
// 将“Sales”字段添加到数据区域。
pivotTable.DataFields.Add(pivotTable.Fields["Sales"]);

pivotTable.EndUpdate();

数据透视表限制

创建数据透视表时,请考虑以下限制。

特征 限制
工作表上的数据透视表数 受可用内存限制
行字段数 受可用内存限制
列字段数 受可用内存限制
页数字段数 256
数据字段数 256
每个字段的唯一项数 1,048,576 用于 XLSX 格式,XLS格式为32,500