innerwang 发表于 2024-12-10 16:00:33

allowDynamicArray 咨询



动态数组简介 这里介绍了使用方法


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

RoyAji 发表于 2024-12-10 16:13:36

本帖最后由 RoyAji 于 2024-12-10 16:15 编辑

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

Joestar.Xu 发表于 2024-12-10 16:22:43

楼上正解{:5_117:}

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

innerwang 发表于 2024-12-10 16:44
试了一下把 json 里面的 allowDynamicArray 设置为 true 的确可以

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

Joestar.Xu 发表于 2024-12-10 17:44:55

{:5_110:}

innerwang 发表于 2024-12-11 09:32:39

RoyAji 发表于 2024-12-10 17:25
我猜测实际上fromjson加载完毕,其计算已经完成,如果再设置之后,公式不会主动重算,其值还是之前设置不 ...

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

这个 allowDynamicArray 参数,若使用 sheets.io 导入,你了解对应的设置在哪里吗?

Joestar.Xu 发表于 2024-12-11 11:02:45

您好,IO导入没有相关的配置可以开启allowDynamicArray,只能在导入完成后的回调函数中开启allowDynamicArray。

RoyAji 发表于 2024-12-11 11:10:02

本帖最后由 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实例
spread.fromJSON(JSON.parse(value), { doNotRecalculateAfterLoad: true }).then(function (tmp) {
    spread.options.allowDynamicArray = true;
    for (let i = 0; i < spread.sheets.length; i++) {
      spread.sheets.recalcAll(true);
    }
})

Joestar.Xu 发表于 2024-12-11 17:08:09

RoyAji 发表于 2024-12-11 11:10
我查了下API试了一下,可以fromJSON的时候设置doNotRecalculateAfterLoad,然后fromJson之后设置allowDyn ...

:hjyzw::hjyzw:
页: [1] 2
查看完整版本: allowDynamicArray 咨询