找回密码
 立即注册

QQ登录

只需一步,快速开始

Silhouette

注册会员

7

主题

9

帖子

58

积分

注册会员

积分
58
  • 140

    金币

  • 7

    主题

  • 9

    帖子

Silhouette
注册会员   /  发表于:2022-10-17 10:23  /   查看:1486  /  回复:6
1金币
本帖最后由 Silhouette 于 2022-10-17 10:23 编辑


Q: 异步函数中使用SetArray SetValue单元格空白 但移动上去有数据 双击可以显示 如下图

image.png960512390.png image.png687875671.png



demo.rar

149.81 KB, 下载次数: 105

最佳答案

查看完整内容

setArray 底层封装了内置公式,所以不建议在异步函数中执行setArray。这边可以使用for循环遍历来实现setValue。 附件中给出了一份demo,可以参考此demo来异步实现 代码中主要是要注意两点,要设置setTimeout,其次setValue的索引单元格不要与设置setFormula的单元格冲突。

6 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-17 10:23:35
来自 6#
setArray 底层封装了内置公式,所以不建议在异步函数中执行setArray。这边可以使用for循环遍历来实现setValue。
附件中给出了一份demo,可以参考此demo来异步实现
代码中主要是要注意两点,要设置setTimeout,其次setValue的索引单元格不要与设置setFormula的单元格冲突。

App.js

4.75 KB, 下载次数: 117

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-17 12:12:47
2#
收到,这边验证后给您回复。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-17 16:19:37
3#
本帖最后由 Ellia.Duan 于 2022-10-17 16:22 编辑

这边查看了您的代码,想问下您为什么要在公式的异步函数中 调用setArray()方法??

目前evaluateAsync 参数包括context,与agrs。这边获取到的args没有获取到target、url等值。
image.png142602233.png
image.png534003905.png



其次 这边没有看到您使用ASUM公式的代码,在自定义函数中,execute方法中要注意设置单元格的值 与设置此公式的单元格冲突。
  1.         sheet.setFormula(10, 2, "ASUM(A1,B1)");
复制代码
如上所示,在(10,2)单元格中设置ASUM公式,在evaluateAsync函数中不要手动为(10,2)设置setValue,setText,setArray等等。
回复 使用道具 举报
Silhouette
注册会员   /  发表于:2022-10-17 16:29:25
4#
Ellia.Duan 发表于 2022-10-17 16:19
这边查看了您的代码,想问下您为什么要在公式的异步函数中 调用setArray()方法??

目前evaluateAsync  ...

我们是想在异步函数中调用http请求 获取数据后通过setArray/setValue渲染到sheet中. 具体的调用是在表格中手动输入调用的 比如 在单元格中输入=ASUM(1, 2, 3)
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-17 18:07:33
5#
这边明白您的需求了,这边需要调研一下,有结果会及时回复您。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-1 14:12:23
7#
请问楼主参考上述方案问题解决了吗?如果还有疑问,可以跟帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部