找回密码
 立即注册

QQ登录

只需一步,快速开始

Derrick.Jiao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-28 13:39  /   查看:2078  /  回复:0
在编辑器中,我们可以在设计模块下通过选定现有的透视表主题样式,快速地应用透视表主题样式。那我想提前设计好对应的主题样式模板可以存起来然后应用到不同的透视表,就像上面那样做成现成的模板可以实现吗?答案是可以的。
image.png58037718.png

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

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

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

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

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

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

下载附件即可查看demo。
test_update.html (118.26 KB, 下载次数: 56)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部