找回密码
 立即注册

QQ登录

只需一步,快速开始

我想吃麻薯
初级会员   /  发表于:2021-12-17 15:19  /   查看:3317  /  回复:7
本帖最后由 Derrick.Jiao 于 2022-1-6 14:12 编辑

=FILTER(Table1[name],Table1[type]="ASSET_CCA","")

我想获取这个公式得到的结果数组,但是用evaluateFormula
这个方法得到的结果只是数组的第一项,而不是我要的数组

请问我怎么才能获取到数组

7 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-17 17:57:58
沙发
你好,目前evaluateFormula暂不支持获取数组公式返回的数组值,如需获取只能通过getArray获取指定区域的值,返回的是一个数组。
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2021-12-17 18:31:03
板凳
好的感谢解答,请问以后这个方法会考虑返回数组嘛?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-20 10:32:11
地板
我想吃麻薯 发表于 2021-12-17 18:31
好的感谢解答,请问以后这个方法会考虑返回数组嘛?

感谢你的反馈,以上需求已被整理记入我们的内部系统,编号是:40707。
该需求暂时没有列在近期的开发计划中,后续产品经理会评估该需求的合理性以及实现的必要性、可行性,然后加入开发计划。
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2021-12-20 10:57:58
5#
Derrick.Jiao 发表于 2021-12-20 10:32
感谢你的反馈,以上需求已被整理记入我们的内部系统,编号是:40707。
该需求暂时没有列在近期的开发 ...

了解,感谢回复
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-20 11:35:10
6#

应该的
回复 使用道具 举报
WilliamChang
葡萄城公司职员   /  发表于:2021-12-20 12:21:15
7#
本帖最后由 WilliamChang 于 2021-12-20 12:23 编辑

我来提供一个变通方案,可以创建一个自定义方法,然后在evaluateFormula的时候包一下就可以了:
  1.     function GetArrayFunction() {
  2.        this.name = 'GETARRAY';
  3.        this.maxArgs = 1;
  4.        this.minArgs = 1;
  5.     }
  6.     GetArrayFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
  7.     GetArrayFunction.prototype.evaluate = function (arg) {
  8.        console.log(arg);
  9.     }

  10.    GetArrayFunction.prototype.acceptsArray = function(){ return true;};
  11.     var f = new GetArrayFunction();
  12.     spread.addCustomFunction(f);

  13. GC.Spread.Sheets.CalcEngine.evaluateFormula(sheet, "=GETARRAY(FILTER(A1:A7,A1:A7>3))", 11,11);
复制代码


回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-20 14:23:05
8#
WilliamChang 发表于 2021-12-20 12:21
我来提供一个变通方案,可以创建一个自定义方法,然后在evaluateFormula的时候包一下就可以了:

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