请选择
进入手机版
|
继续访问电脑版
学习路径
视频资源
开发者学堂
悬赏
活动
招聘
登录
/
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
搜索
AI搜索
SpreadJS
活字格
Wyn
GcExcel Java
公开课
新手入门
新手训练营
技术认证
好友
帖子
收藏
勋章
设置
我的收藏
退出
首页
›
SpreadJS & GcExcel专区
›
求助中心
›
查看内容
发新帖
Silhouette
注册会员
7
主题
9
帖子
58
积分
注册会员
注册会员, 积分 58, 距离下一级还需 142 积分
注册会员, 积分 58, 距离下一级还需 142 积分
积分
58
140
金币
7
主题
9
帖子
最新发帖
15.2.2 自定义函数获取参数会自动截取
获取范围内的单元格实例对象
15.2.2 请问使用getRange获取范围单元格后 怎么获取其中的单元格list
文件模板绑定右击事件
15.2.2 异步函数中使用SetValue和SetArray的问题
v14.2.2 Designer如何添加自定义函数(SJS-10986)
[已处理]
15.2.2 自定义函数中执行recalcAll导致无限循环
Silhouette
注册会员
/ 发表于:
2022-10-24 17:41
/
查看:
2154
/ 回复:
4
10
金币
操作如下:
1. 自定义函数(customFunc)中调用http请求获取数据
2. 遍历数据使用setValue赋值到sheet中
3. 通过setValue赋值(例如 A1 = 3)
赋值后sheet中存在其他的公式(例如=SUM(A1, 4))和引用(例如=A1)不会触发自动更新或重新计算 需要在自定义函数中调用recalcAll重新触发计算, recalcAll也会触发该自定义函数(customFunc) 导致无限循环 请问有什么方法可以解决这种问题吗?
最佳答案
18932441132
查看完整内容
自定义异步函数,参考 通过setAsyncResult方法返回结果, 性质属于"计算返回结果",会触发相关单元格重新计算
收藏
回复
4
个回复
最佳答案
18932441132
注册会员
/
发表于:2022-10-24 17:41:10
|
显示全部楼层
来自 4
#
本帖最后由 18932441132 于 2022-11-10 11:31 编辑
自定义异步函数,参考
new GC.Spread.CalcEngine.Functions.AsyncFunction()
复制代码
通过setAsyncResult方法返回结果,
性质属于"计算返回结果",会触发相关单元格重新计算
customFunction.prototype.evaluateAsync = function evaluate(context){
let result = await post()
context.setAsyncResult(result)
}
复制代码
回复
使用道具
举报
Richard.Ma
超级版主
/
发表于:2022-10-24 18:22:59
|
显示全部楼层
2
#
建议上传一个重现问题的demo上来,
你提到的2,3 步骤,我看是通过代码完成的,这个正常来说设置后如果有单元格引用的A1是可以触发计算的。我不确定你这个问题是如何产生的
回复
使用道具
举报
Richard.Ma
超级版主
/
发表于:2022-11-1 17:28:21
|
显示全部楼层
3
#
不知道楼主问题是否已经解决,如果仍未解决,欢迎继续上传一个重现问题的demo,我们来协助调查
回复
使用道具
举报
Richard.Ma
超级版主
/
发表于:2022-11-10 15:42:41
|
显示全部楼层
5
#
,楼上正解,setAsyncResult是异步方法返回结果的正确放式,在公式值改变或其他的公式单元格也是会自动计算的。不应该在异步函数中去setValue。
这样就不会有楼主说的“不会触发自动更新或重新计算”的问题,也就不需要recalcAll了。在方法中又去调用recalcAll肯定是会死循环的
回复
使用道具
举报
圣诞拼拼乐
SpreadJS认证
SpreadJS高级认证
讲师达人
悬赏达人
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
发表回复
返回顶部