[]
        
首页
开发者学堂
文档
论坛
市场
生态机会
活动
立即试用
(Showing Draft Content)

ICalculatedFields

Interface ICalculatedFields

All Superinterfaces:
Iterable<IPivotField>

public interface ICalculatedFields extends Iterable<IPivotField>
表示指定数据透视表报表中所有计算字段的 IPivotField 对象集合。

使用此集合可以访问、添加和移除数据透视表的计算字段。集合中的每一项表示数据透视表报表中定义的一个计算字段。


 worksheet.getRange("A1:B4").setValue(new Object[][] {
     {"Product", "Amount"},
     {"Apple", 120},
     {"Orange", 90},
     {"Apple", 80}
 });
 IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B4"));
 IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"), "SalesPivot");
 ICalculatedFields calculatedFields = pivotTable.getCalculatedFields();
 calculatedFields.add("DoubleAmount", "=Amount*2");
 
  • Method Details

    • getCount

      int getCount()
      返回计算字段的数量。

      此方法返回数据透视表报表中由 IPivotTable.getCalculatedFields() 返回的集合内的计算字段数量。

      
       Object[][] sourceData = {
           {"Product", "Amount"},
           {"Apple", 100},
           {"Pear", 200}
       };
       worksheet.getRange("A1:B3").setValue(sourceData);
       IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B3"));
       IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"), "PivotTable1");
       pivotTable.getCalculatedFields().add("Tax", "=Amount*0.1");
       int count = pivotTable.getCalculatedFields().getCount();
       
      Returns:
      此集合中的计算字段数量。
    • get

      IPivotField get(int index)
      按索引获取计算字段。

      使用此方法可以从 IPivotTable.getCalculatedFields() 返回的集合中检索计算字段。

      
       worksheet.getRange("A1:B3").setValue(new Object[][] {
           {"Product", "Amount"},
           {"Bike", 100},
           {"Bike", 200}
       });
       IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B3"));
       IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"));
       pivotTable.getCalculatedFields().add("Tax", "=Amount*0.1");
       IPivotField field = pivotTable.getCalculatedFields().get(0);
       
      Parameters:
      index - 计算字段的索引。
      Returns:
      计算字段。
    • get

      IPivotField get(String fieldName)
      按名称获取计算字段。

      使用此方法可以从 IPivotTable.getCalculatedFields() 返回的集合中检索计算字段。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Product", "Amount"},
           {"Apple", 120},
           {"Orange", 90},
           {"Apple", 80}
       });
       IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B4"));
       IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"));
       pivotTable.getCalculatedFields().add("Tax", "=Amount*0.1");
       IPivotField field = pivotTable.getCalculatedFields().get("Tax");
       
      Parameters:
      fieldName - 要检索的计算字段的名称。
      Returns:
      与指定名称匹配的计算字段。
      Throws:
      IllegalArgumentException - 如果没有计算字段与 fieldName 匹配。
    • add

      IPivotField add(String Name, String Formula)
      创建新的计算字段。返回 IPivotField 对象。

      当内置汇总函数不足以满足需要时,使用此方法可以向数据透视表添加基于自定义公式的字段。该公式对应于所创建字段的 IPivotField.getFormula() 值。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Product", "Amount"},
           {"A", 1200},
           {"B", 800},
           {"A", 600}
       });
       IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B4"));
       IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"));
       IPivotField calculatedField = pivotTable.getCalculatedFields().add("Tax", "=IF(Amount > 1000, 3% * Amount, 0)");
       calculatedField.setOrientation(PivotFieldOrientation.DataField);
       
      Parameters:
      Name - 计算字段的名称。
      Formula - 计算字段的公式。
      Returns:
      计算字段。
    • remove

      void remove(String fieldName)
      按名称移除计算字段。

      使用此方法可以从数据透视表的计算字段集合中删除计算字段。

      
       worksheet.getRange("A1:B3").setValue(new Object[][] {
           {"Product", "Amount"},
           {"Apple", 100},
           {"Orange", 200}
       });
       IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B3"));
       IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"), "pivotTable1");
       pivotTable.getCalculatedFields().add("Tax", "=Amount*0.1");
       pivotTable.getCalculatedFields().remove("Tax");
       
      Parameters:
      fieldName - 要移除的计算字段的名称。