找回密码
 立即注册

QQ登录

只需一步,快速开始

David.Wang

超级版主

6

主题

8

帖子

64

积分

超级版主

Rank: 8Rank: 8

积分
64
  • 270

    金币

  • 6

    主题

  • 8

    帖子

David.Wang
超级版主   /  发表于:2024-10-21 12:09  /   查看:194  /  回复:0
本帖最后由 David.Wang 于 2024-10-21 12:26 编辑

场景:导入包含自定义函数的Excel文件后,虽然注册了自定义函数,但是发现单元格中的函数始终显示#NAME,无法计算
方案:执行以下代码
  1. spread.calculate(GC.Spread.Sheets.CalculationType.rebuild)
复制代码

自定义函数常用写法:
  1. // 定义方法一
  2.   class MYFUNC extends GC.Spread.CalcEngine.Functions.Function {
  3.     constructor() {
  4.       super('MYFUNC')
  5.     }

  6.     evaluate(){
  7.       return 'xxx';
  8.     }
  9.   }
复制代码
  1. // 定义方法二
  2. function MYFUNC(params) {
  3.     this.name='MYFUNC'
  4. };
  5. MYFUNC.prototype = new GC.Spread.CalcEngine.Functions.Function();
  6. MYFUNC.prototype.evaluate = function () {
  7.     return 'xxx'
  8. };
复制代码
  1. // 注册(以下均可,只是范围的差异)
  2. GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction('MYFUNC', new MYFUNC())
  3. spread.addCustomFunction(new MYFUNC())
  4. sheet.addCustomFunction(new MYFUNC())
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部