找回密码
 立即注册

QQ登录

只需一步,快速开始

innerwang

高级会员

101

主题

408

帖子

1029

积分

高级会员

积分
1029
innerwang
高级会员   /  发表于:2024-12-10 16:00  /   查看:118  /  回复:11
1金币


动态数组简介 这里介绍了使用方法
image.png264630126.png

目前我是在实例化时设置了 allowDynamicArray 为 true, 如下 image.png442369689.png
后面会通过 spread.fromJson 导入内容,新导入的内容 FILTER 函数未计算出来结果

11 个回复

倒序浏览
RoyAji
初级会员   /  发表于:2024-12-10 16:13:36
沙发
本帖最后由 RoyAji 于 2024-12-10 16:15 编辑

我记得这个选项是跟着工作簿走的,在fromJson之后,spread的allowDynamicArray也会变化。json文件里面可能需要设置allowDynamicArray为true或在fromjson之后重新设置allowDynamicArray。
image.png297199095.png

评分

参与人数 1金币 +500 收起 理由
Joestar.Xu + 500 很给力!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-10 16:22:43
板凳
楼上正解
回复 使用道具 举报
innerwang
高级会员   /  发表于:2024-12-10 16:44:12
地板
RoyAji 发表于 2024-12-10 16:13
我记得这个选项是跟着工作簿走的,在fromJson之后,spread的allowDynamicArray也会变化。json文件里面可能 ...

试了一下把 json 里面的 allowDynamicArray 设置为 true 的确可以

但是好像fromJson 完毕后,在 loaded 里面再去设置 allowDynamicArray 为true 不太行, 已导入的内容还是展示不正确的
回复 使用道具 举报
RoyAji
初级会员   /  发表于:2024-12-10 17:25:42
5#
innerwang 发表于 2024-12-10 16:44
试了一下把 json 里面的 allowDynamicArray 设置为 true 的确可以

但是好像fromJson 完毕后,在 loade ...

我猜测实际上fromjson加载完毕,其计算已经完成,如果再设置之后,公式不会主动重算,其值还是之前设置不生效的时候计算的。
如果fromjson完,设置allowDynamicArray为true然后再重算公式你看看公式的计算结果对不对。
不过这样子确实比较麻烦,不如一开始就在文件里设置好。

评分

参与人数 1金币 +200 收起 理由
Joestar.Xu + 200 很给力!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-10 17:44:55
6#
回复 使用道具 举报
innerwang
高级会员   /  发表于:2024-12-11 09:32:39
7#
RoyAji 发表于 2024-12-10 17:25
我猜测实际上fromjson加载完毕,其计算已经完成,如果再设置之后,公式不会主动重算,其值还是之前设置不 ...

谢谢,我试了一下,fromJSON 完后再设置且触发重算( CalculationType.rebuild模式), 结果是和在 json 中设置完再 fromJSON 不一致的。

这个 allowDynamicArray 参数,若使用 sheets.io 导入,你了解对应的设置在哪里吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-11 11:02:45
8#
您好,IO导入没有相关的配置可以开启allowDynamicArray,只能在导入完成后的回调函数中开启allowDynamicArray。
回复 使用道具 举报
RoyAji
初级会员   /  发表于:2024-12-11 11:10:02
9#
本帖最后由 RoyAji 于 2024-12-11 11:12 编辑
innerwang 发表于 2024-12-11 09:32
谢谢,我试了一下,fromJSON 完后再设置且触发重算( CalculationType.rebuild模式), 结果是和在 json 中 ...

我查了下API试了一下,可以fromJSON的时候设置doNotRecalculateAfterLoad,然后fromJson之后设置allowDynamicArray ,然后我找到的重算是遍历sheet调用recalcAll(true),好像是可以的。
你参考一下看看能行不:其中value就是json的文本,spread就是spreadjs实例
  1. spread.fromJSON(JSON.parse(value), { doNotRecalculateAfterLoad: true }).then(function (tmp) {
  2.     spread.options.allowDynamicArray = true;
  3.     for (let i = 0; i < spread.sheets.length; i++) {
  4.         spread.sheets[i].recalcAll(true);
  5.     }
  6. })
复制代码

评分

参与人数 1金币 +300 收起 理由
Joestar.Xu + 300 赞一个!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-11 17:08:09
10#
RoyAji 发表于 2024-12-11 11:10
我查了下API试了一下,可以fromJSON的时候设置doNotRecalculateAfterLoad,然后fromJson之后设置allowDyn ...

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部