找回密码
 立即注册

QQ登录

只需一步,快速开始

果爸

注册会员

11

主题

35

帖子

120

积分

注册会员

积分
120
果爸
注册会员   /  发表于:2024-1-19 07:54  /   查看:3396  /  回复:12
20金币
本帖最后由 果爸 于 2024-1-19 07:56 编辑

定义了一个自定义函数,返回的是一个数组,批量给其他单元格赋值,目前存在的问题是批量赋值的其他单元格,也会被其他的单元格公式引用,但是其他的单元格公式却不计算,代码如下:

image.png24924925.png

12 个回复

正序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-22 17:51:41
13#
回复 使用道具 举报
WilliamChang
葡萄城公司职员   /  发表于:2024-1-22 14:00:34
12#
本帖最后由 WilliamChang 于 2024-1-22 14:02 编辑

你好,sheet.resumeCalcService(); 参数为true或是undefine情况下,意思是全部重算,所以方法的evaluate又会被调用,然后继续setTimeout -》 sheet.resumeCalcService();  然后就会出现反复的赋值调用。

sheet.resumeCalcService(false); 的话是计算了的,只不过没有重绘页面。所以正确的写法应该是

image.png806882324.png
回复 使用道具 举报
WilliamChang
葡萄城公司职员   /  发表于:2024-1-22 13:38:36
11#
果爸 发表于 2024-1-20 11:23
这个方式我大概测了一下好像可以,

顺便咨询一下,当报表的公式很多的情况下,比如上千的公式 ...

你好,同步函数的效率高,异步函数需要多次重算来保证结果正确。

除了网络请求等同步函数做不到的情况,推荐使用同步函数。
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-1-20 11:23:25
10#
本帖最后由 果爸 于 2024-1-20 11:26 编辑
WilliamChang 发表于 2024-1-19 17:29
你好,我看了上面的图片里的代码,好像是在异步自定义方法里面使用setArray来覆盖掉公式。常规方法是使用se ...

这个方式我大概测了一下好像可以,

顺便咨询一下,当报表的公式很多的情况下,比如上千的公式(后台请求,只有极个别函数返回数组),异步函数和同步函数那个效率高呢,还是说基本一样
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-1-19 23:34:25
9#
image.png279192504.png

自定义公式填充其他单元格的值 (1).rar

1.13 KB, 下载次数: 197

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-19 17:46:04
8#
WilliamChang 发表于 2024-1-19 17:29
你好,我看了上面的图片里的代码,好像是在异步自定义方法里面使用setArray来覆盖掉公式。常规方法是使用se ...

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-19 13:51:24
6#
果爸 发表于 2024-1-19 12:04
主要是需要重新计算的公式单元太多,无法定位哪些公式单元需要重新计算,因为有些已经计算过了,有些没有计 ...

了解了,能否提供一个可以供我们测试的demo呢,因为不太确定什么原因会导致您的问题,如果有一个可以供我们测试的demo,我们能够更好地去调研改问题所在
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-1-19 12:04:28
5#
主要是需要重新计算的公式单元太多,无法定位哪些公式单元需要重新计算,因为有些已经计算过了,有些没有计算,而且并不知道哪些没有计算,公式单元有上千个呢。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-19 11:38:27
4#
果爸 发表于 2024-1-19 09:45
目前的版本14,目前的场景是,报表有好几个sheet页,有很多公式,有从后台请求的,也有表页之间加减计算的 ...

V14版本较老了,没有手动计算和自动计算模式的设置,对于您的需求,您可以尝试使用以下API重新计算您要的区域看能否解决您的问题:
sheet.recalcRange("Sheet1!A1")// 重新计算A1单元格的公式
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-1-19 09:45:50
3#
目前的版本14,目前的场景是,报表有好几个sheet页,有很多公式,有从后台请求的,也有表页之间加减计算的,当然也有个别公式从后台返回来是组数的,每次用户打开报表的时候,系统会自动计算所有的公式,但是因为这个所谓的数组公式的问题导致先于数组公式计算的单元格就有数据,后于数组公式计算的就不生效了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部