以下示例演示如何使用数据透视表创建数据透视表,该数据透视表汇总单元格区域中的数据。
若要创建新的数据透视表,请使用为报表应位于的工作表访问的 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 |