Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > 数据透视表 >
如何:更改数据透视表的数据源

若要更改数据透视表的数据源,请使用 PivotTable.ChangeDataSource 方法重载。您可以更新数据透视表以反映初始源范围的变化(例如,如果数据透视表被新行或列扩展,或者删除了现有记录或字段),或者基于完全不同的单元格区域重新生成报表,如下例所示。在后一种情况下,您应该重新创建数据透视表,并通过向其添加必要的字段来填充新数据。

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 sourceWorksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("Data2")
'更改数据透视表的数据源。
pivotTable.ChangeDataSource(sourceWorksheet("A1:H6367"))

'将“State”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields("State"))
'将“Yearly Earnings”字段添加到数据区域。
Dim dataField As DevExpress.Spreadsheet.PivotDataField = pivotTable.DataFields.Add(pivotTable.Fields("Yearly Earnings"))
'计算每个州的“Yearly Earnings”值的平均值。
dataField.SummarizeValuesBy = DevExpress.Spreadsheet.PivotDataConsolidationFunction.Average

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

// 按数据透视表在集合中的名称访问数据透视表。
DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables["PivotTable1"];
DevExpress.Spreadsheet.Worksheet sourceWorksheet = workbook.Worksheets["Data2"];
// 更改数据透视表的数据源。
pivotTable.ChangeDataSource(sourceWorksheet["A1:H6367"]);

// 将“State”字段添加到行轴区域。
pivotTable.RowFields.Add(pivotTable.Fields["State"]);
// 将“Yearly Earnings”字段添加到数据区域。
DevExpress.Spreadsheet.PivotDataField dataField = pivotTable.DataFields.Add(pivotTable.Fields["Yearly Earnings"]);
// 计算每个州的“Yearly Earnings”值的平均值。
dataField.SummarizeValuesBy = DevExpress.Spreadsheet.PivotDataConsolidationFunction.Average;