透视表和源数据
透视表的源数据
有时,您希望创建能从不同数据源(如数据库)获取数据的Microsoft Excel报告中的数据透视表,但这些数据源在设计时是不确定的。本文提供了一种动态更改数据透视表数据源的方法。
更改透视表的数据源
- 创建一个新的设计模板。
-
创建一个新的设计模板文件,如下面的屏幕截图所示。
-
然后定义一个名为DataSource的命名范围,该范围引用这些单元格。
创建设计模板并定义命名范围,数据源
-
- 基于该命名范围创建数据透视表。
-
在Microsoft Excel中,选择数据,然后选择数据透视表和数据透视图报表。
-
根据第一步中创建的命名范围创建数据透视表。
基于命名范围创建数据透视表,数据源
-
-
将相应字段拖放到数据透视表的行和列中,然后按照下面的截图创建结果的数据透视表。
基于相应字段创建数据透视表
- 右键单击数据透视表,然后选择表选项。
-
在数据选项设置中选择打开时刷新。
设置数据透视表选项
-
现在,您可以将此文件保存为您的设计模板文件。
- 填充新数据并更改数据透视表的源数据。
- 一旦设计模板创建完成,使用以下代码修改数据透视表的源数据。
执行下面的示例代码将更改数据透视表的源数据,数据透视表将如下所示。
动态更改的数据透视表
// 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"); |