Richard.Ma 发表于 2022-1-20 19:54:30

SpreadJS V15.0新特性揭秘 - 透视表:支持计算项

本帖最后由 Richard.Ma 于 2022-1-20 20:06 编辑

计算项概念:将原始的统计数据使用公式进行纵向计算得到结果,即增加一行计算得到的结果(相对应有一个“计算字段”的概念,会增加一列计算得到的结果)

以下图为例,Raw Data为原始的数据透视结果


我们增加计算项并进行单独分组后,可以看到在Analysis Results分组内,添加了三行计算项

[*]Outstanding Orders: 每个产品中尚未交付的订单总数(=OrderStatus + OrderStatus + OrderStatus),即订单前三种未交付状态的总量
[*]Total Order:每个产品的所有订单总数(=OrderStatus['Outstanding Orders'] + OrderStatus")即订单四种状态的总量
[*]Order Proportion: 每种产品的未发货订单总数占订单总数的比例



您可以通过代码将自定义的计算项添加到使用公式计算值的数据透视表的行/列字段区域中。在公式中,您可以使用常量或引用数据透视表的其他项目。

具体使用方式如下:

添加计算项
pivotTable.addCalcItem("OrderStatus", "Outstanding orders","=OrderStatus + OrderStatus + OrderStatus");

删除计算项
pivotTable.removeCalcItem("OrderStatus", "Outstanding orders");
修改计算项的公式或优先级来修改计算项
pivotTable.updateCalcItem("OrderStatus", "Outstanding orders", "=888", 1);
通过计算项名称获取有关此计算项的信息。如果您不提供名称,那么您将获得该字段的计算项的所有信息
pivotTable.getCalcItems("OrderStatus");
    pivotTable.getCalcItems();<font size="3"><font color="rgb(0, 0, 0)"><font face="Montserrat, &quot;">
</font></font></font>
您还可以设置是否应将计算项的值合并到数据透视表的小计和总计中。(如果将计算项的值合并统计到小计和总计中,会导致总计和小计不正确,默认不合并,如上图),设置calcItemAggregation属性为 GC.Spread.Pivot.CalcItemAggregation类型的值即可,比如要合并到小计和总计中
pivotTable.options.calcItemAggregation: GC.Spread.Pivot.CalcItemAggregation.exclude
GC.Spread.Pivot.CalcItemAggregation有下面两种选项
GC.Spread.Pivot.CalcItemAggregation{
      include, //数据透视表总计包括计算项的值。
      exclude //数据透视表总计不包括计算项的值。
    }


页: [1]
查看完整版本: SpreadJS V15.0新特性揭秘 - 透视表:支持计算项