找回密码
 立即注册

QQ登录

只需一步,快速开始

LMJYH

注册会员

8

主题

20

帖子

106

积分

注册会员

积分
106
LMJYH
注册会员   /  发表于:2022-11-25 14:37  /   查看:1583  /  回复:5
1金币
本帖最后由 Clark.Pan 于 2022-11-25 16:48 编辑


已知“结果”sheet页A0公式为'数据!A1', A1公式为'数据!A2'。现在做如下步骤:
image.png702196349.png

1. 点击加载数据按钮,先重新给“数据”sheet页加载数据,
2. 给“结果”sheet页添加6列,再用copyTo,将“结果”sheet页A列,copy到新加的6列,则新增6列也会有公式。
3. 接着修改“数据”sheet页第二行单元格数据,按正常来说,“结果”sheet页的值也会变化(因为是公式引用)
问题就出在:B2,C2... 都会变化,但A2没变。请帮忙看下,这种该怎么处理?


image.png67433775.png

结果:
image.png469077453.png

代码已上传,请帮忙查看。感谢~

bug.zip

3.96 MB, 阅读权限: 150, 下载次数: 1

最佳答案

查看完整内容

原因是这样的,公式计算引擎的运行在底层的设计上有一个叫做公式计算链的结构。由于您这边在点击按钮后做了sheet.fromjson的操作,这种局部的fromjson操作会导致原本的公式计算链断裂。因为原本sheet对象被替换成了另一个对象。但内存中公式计算链还是链在原来的对象上。 这就导致了A2这个单元格为什么不计算的原因。又因为后面几列原来是没有的,是后续通过copyto重新添加的,在copyto的过程中相当于重新设置了一次公式,在重新 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-25 14:37:47
来自 2#
原因是这样的,公式计算引擎的运行在底层的设计上有一个叫做公式计算链的结构。由于您这边在点击按钮后做了sheet.fromjson的操作,这种局部的fromjson操作会导致原本的公式计算链断裂。因为原本sheet对象被替换成了另一个对象。但内存中公式计算链还是链在原来的对象上。
这就导致了A2这个单元格为什么不计算的原因。又因为后面几列原来是没有的,是后续通过copyto重新添加的,在copyto的过程中相当于重新设置了一次公式,在重新设置公式的时候就会重新生成新的公式计算链,这就是为什么后面几列是正常的原因。
对于您的问题有两个方案:
1.sheet.recalcAll(),recalcAll的过程中会重新生成计算链。
2.将A2单元格公式清空再重新设置公式,这样也可以触发重新生成计算链。
回复 使用道具 举报
LMJYH
注册会员   /  发表于:2022-11-29 16:41:37
3#
Clark.Pan 发表于 2022-11-25 17:32
原因是这样的,公式计算引擎的运行在底层的设计上有一个叫做公式计算链的结构。由于您这边在点击按钮后做了 ...

非常感谢,我这边试了,两个方法都可行。
然后我无意间,不做其他修改,只删除了上传代码里的dataSheet.reset();方法,发现也是可以的,这又是啥情况?
image.png971298217.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 18:54:35
5#
LMJYH 发表于 2022-11-29 16:41
非常感谢,我这边试了,两个方法都可行。
然后我无意间,不做其他修改,只删除了上传代码里的dataSheet. ...

sheet.reset相当于重置,会清空所有内容。您确定您真实的sheet中出了公式没其他的内容了吗?因为reset也会将其他内容清空
回复 使用道具 举报
LMJYH
注册会员   /  发表于:2022-11-30 16:23:19
6#
Clark.Pan 发表于 2022-11-29 18:54
sheet.reset相当于重置,会清空所有内容。您确定您真实的sheet中出了公式没其他的内容了吗?因为reset也 ...

真实的“数据”sheet中只有数据,单纯的单元格值,然后“结果”sheet页不仅有公式还有单纯的单元格值。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-30 16:40:11
7#
那您用sheet.reset就会清空所有内容
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部