Derrick.Jiao 发表于 2022-7-28 13:39:06

设计统一的主题模板在不同的透视表中使用

在编辑器中,我们可以在设计模块下通过选定现有的透视表主题样式,快速地应用透视表主题样式。那我想提前设计好对应的主题样式模板可以存起来然后应用到不同的透视表,就像上面那样做成现成的模板可以实现吗?答案是可以的。


这篇文章实现的就是如何从原有、设计好的透视表中,剥离出透视表主题样式,然后再应用到不同的透视表中去。
第一步就是剥离样式,通过下面的代码(万物皆可toJSON法则)
var theme = pivot1.theme().toJSON()可以拿到对应的主题序列化的对象


那上面这个对象是怎么来的呢?就是通过编辑器的新建数据透视表样式来实现的。也就是说想要创建或者设计一个模板,我们就得基于一个透视表,去设计一个模板,然后再应用到透视表上,最后再通过toJSON进行序列化。


第二步,拿到这个序列化对象之后可以进行存储或者直接到第三步。

第三步,开始应用到一个新的透视表样式实例中。我们先创建一个透视表主题实例,然后根据主题对象的属性进行“吸星”**。主题样式中一共有5个属性,分别是firstColumnStyle、headerRowStyle、subtotalColumn1Style、wholeTableStyle。除了name外,这里面传的就是PivotTableStyle样式实例。也即是把上面获取到的theme一个一个搬到t1中。


第四步,最后就是把这个新的theme应用到想要的透视表中即可。
pivot.theme(t1)

最后实现的效果就是把右侧的透视表样式,“拷贝”到左侧


下载附件即可查看demo。

页: [1]
查看完整版本: 设计统一的主题模板在不同的透视表中使用