[]
数据透视表中的计算字段是指通过对基础数据源的现有数据字段应用附加逻辑或公式而创建的数据字段。当函数集计和自定义计算无法生成所需的输出时,这些字段尤其有用。例如,一家公司的员工数据库保存着关于每个员工现有工资和绩效评级的数据。年终时,通过使用薪资和评级字段创建计算字段,可以轻松计算员工的加薪。
在GcExcel中,getCalculatedFields 方法表示特定数据透视表中所有计算字段的集合。可以使用 ICalculatedFields 接口的add方法在数据透视表中创建新的计算字段。Add方法接受字段名和公式的字符串参数来生成计算字段。要从集合中删除计算字段,可以使用 remove 方法,该方法将目标字段名作为其参数。
请参考以下代码在数据透视表中创建计算字段:
IWorksheet calculatedFieldSheet = workbook.getWorksheets().add();
calculatedFieldSheet.setName("CalculatedField");
// Add pivot table.
IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:F71"));
IPivotTable calculatedFieldTable = calculatedFieldSheet.getPivotTables().add(pivotCache, calculatedFieldSheet.getRange("A1"));
calculatedFieldTable.getPivotFields().get("Product").setOrientation(PivotFieldOrientation.RowField);
calculatedFieldTable.getPivotFields().get("Amount").setOrientation(PivotFieldOrientation.DataField);
// Add calculated field.
calculatedFieldTable.getCalculatedFields().add("Tax", "=IF(Amount > 1000, 3% * Amount, 0)");
// Set calculated field as data field.
calculatedFieldTable.getPivotFields().get("Tax").setOrientation(PivotFieldOrientation.DataField);
calculatedFieldTable.getDataFields().get("Sum of Amount").setNumberFormat("$#,##0_);($#,##0)");
calculatedFieldTable.getDataFields().get("Sum of Tax").setNumberFormat("$#,##0_);($#,##0)");