[]
GcExcel Java提供了 GETPIVOTDATA 函数,该函数查询数据透视表以根据指定参数获取数据。使用此函数的主要优点是,它确保返回正确的数据,即使数据透视表布局已更改。
语法
=GETPIVOTDATA(data_field, pivot_table, [field1, item1, field2, item2],…)
GETPIVOTDATA 函数可以实现为返回单个单元格值或动态数组,具体取决于我们传递的参数。若要检索单个单元格值,数据字段的名称和数据透视表是必需参数。而第三个参数是字段名和项目名的组合,是可选的。然而,为了检索动态数组,所有三个参数都是必需的,并且项名称支持 {"Canada","US","France"} 等数组或A1:A3等范围引用。此外,您必须使用 IRange.setFormula2 用于 GETPIVOTDATA 函数,以返回在范围内溢出的动态数组。为了便于使用,您还可以使用 IRange.generateGetPivotDataFunction 方法自动生成 GETPIVOTDATA 函数。但是,当 IRange 对象不是单个单元格时,generateGetPivotDataFunction 方法返回 null。
返回单个单元格的 GETPIVOTDATA 函数的示例代码如下:
IWorksheet worksheet2 = workbook.getWorksheets().add();
worksheet.getRange("H25").setFormula(worksheet.getRange("G6").generateGetPivotDataFunction(worksheet2.getRange("A1")));
worksheet2.getRange("H24").setFormula("=GETPIVOTDATA(\"Amount\",Sheet1!$A$1,\"Category\",\"Mobile\",\"Country\",\"Australia\")");
Refer to the following example code for GETPIVOTDATA function returning a dynamic array:
// Here, Formula2 is used along with GETPIVOTDATA to fetch the multiple values
worksheet.getRange("H10").setFormula2("=GETPIVOTDATA(\"Amount\",$A$1,\"Category\",\"Consumer Electronics\",\"Country\",{\"Canada\",\"Germany\",\"France\"})");