数据透视表和源数据

数据透视表的源数据

有时您想要创建 Microsoft Excel 报告,其中包含从设计时未知的不同数据源(例如数据库)获取数据的数据透视表。本文提供了一种动态更改数据透视表数据源的方法。

更改数据透视表的源数据

  1. 创建一个新的设计器模板。

  2. 如下图所示创建一个新的设计器模板文件。 1.然后定义一个命名范围,数据源,它指的是这个单元格范围。

    创建设计器模板并定义命名范围、DataSource

待办事项:图片_替代_文本

  1. 基于这个命名范围创建数据透视表。

  2. 在 Microsoft Excel 中,选择数据, 然后数据透视表数据透视图报表.

  3. 根据第一步创建的命名范围创建数据透视表。

    基于命名范围 DataSource 创建数据透视表

待办事项:图片_替代_文本

  1. 将相应的字段拖动到数据透视表的行和列,然后创建结果数据透视表,如下面的屏幕截图所示。

    根据相应字段创建数据透视表

待办事项:图片_替代_文本

  1. 右键单击数据透视表并选择表格选项.

  2. 检查打开时刷新数据选项设置。

    设置数据透视表选项

待办事项:图片_替代_文本

现在,您可以将此文件保存为设计器模板文件。

  1. 填充新数据和更改数据透视表的源数据。
  2. 创建设计器模板后,使用以下代码更改数据透视表的源数据。

执行下面的示例代码会更改数据透视表的源数据,数据透视表将如下所示。

动态变化的数据透视表

待办事项:图片_替代_文本

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ChangeSourceData.class) + "PivotTables/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "PivotTable.xls");
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.getWorksheets().get(0);
// Populating new data to the worksheet cells
Cells cells = worksheet.getCells();
Cell cell = cells.get("A9");
cell.setValue("Golf");
cell = cells.get("B9");
cell.setValue("Qtr4");
cell = cells.get("C9");
cell.setValue(7000);
// Changing named range "DataSource"
Range range = cells.createRange(0, 0, 8, 2);
range.setName("DataSource");
// Saving the modified Excel file in default format
workbook.save(dataDir + "ChangeSourceData_out.xls");