找回密码
 立即注册

QQ登录

只需一步,快速开始

onroader

初级会员

35

主题

85

帖子

284

积分

初级会员

积分
284

[已处理] Sheet.recalcAll(true)

onroader
初级会员   /  发表于:2019-9-2 09:17  /   查看:3312  /  回复:6
1金币
看文档,Sheet.recalcAll(true) 不是应该重算表页内的公式吗?
为什么触发其他表页的公式计算。
图片.png70757140.png
我现在想要的效果就是只重算某一个表页。该怎么实现?


最佳答案

查看完整内容

您好,由于公式可能存在跨sheet引用的问题,目前CalcEngine的设计是,当遇到重算命令时,会重算整个workbook的formula,否则无法确保计算结果的正确。 很抱歉API的描述不是很准确,我们会持续改进文档。

6 个回复

倒序浏览
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-2 09:17:58
来自 2#
您好,由于公式可能存在跨sheet引用的问题,目前CalcEngine的设计是,当遇到重算命令时,会重算整个workbook的formula,否则无法确保计算结果的正确。
很抱歉API的描述不是很准确,我们会持续改进文档。
回复 使用道具 举报
onroader
初级会员   /  发表于:2019-9-2 14:25:32
3#
本帖最后由 onroader 于 2019-9-2 14:29 编辑

我们这的场景,用户有可能做几十个表页,而且存在大量需要向服务器取数的公式,全部重算很可能存在性能问题。
按照你的说法,现在无法做到只重算某个表页?

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-2 15:13:12
4#
您好,您能否举例描述一下具体的应用场景呢?是什么原因让您需要在前端执行单个表单的重算?

也许我们能够提供其它的方案来解决这个问题。
回复 使用道具 举报
onroader
初级会员   /  发表于:2019-9-3 09:55:42
5#
用户会做很多表页,每个表页存在大量需要向服务器取数的公式。夸表页取数的情况不多。
比如一个报表做了一年的数据,一个表页是一个月,第一个表页是1月,第二个表页是2月……。
我现在知道9月份数据有变化,我只需要重算9月份的表页就可以了,1到8月份的表页不需要重算。
回复 使用道具 举报
onroader
初级会员   /  发表于:2019-9-3 09:55:44
6#
用户会做很多表页,每个表页存在大量需要向服务器取数的公式。夸表页取数的情况不多。
比如一个报表做了一年的数据,一个表页是一个月,第一个表页是1月,第二个表页是2月……。
我现在知道9月份数据有变化,我只需要重算9月份的表页就可以了,1到8月份的表页不需要重算。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-3 11:07:31
7#
您好,注意到您的表单中,设置了很多异步公式向后台发送请求来获取最新的数据库数据,

实际上对于异步函数,SpreadJS设置了灵活的重算机制,

我制作了一个给异步函数设置触发器的Demo,上传到附件中,您参考一下。

异步函数触发器.html

4.43 KB, 下载次数: 76

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