SpreadJS中支持了Excel超过400种以上的函数,但当常用的函数已经无法满足我们业务场景的应用时,就需要用到我们的自定义函数的功能了。自定义函数是SpreadJS非常灵活的进阶应用,当我们本博客主要讲解如何在自定义函数中操作其他单元格。这样的场景在日常函数应用中会经常遇到,比如我们可以定义一个函数作为控制开关去控制其他单元格的任何属性(值,样式,格式等)。 首先,我们还是使用通常的方法创建一个自定义函数,例如:
- function FactorialFunction() {
- this.name = 'test';
- this.maxArgs = 1;
- this.minArgs = 1;
- this.typeName = "FactorialFunction";
- }
复制代码 接下来,我们需要重写该函数原型的isContextSensitive方法,让其return为true。- FactorialFunction.prototype.isContextSensitive = function () {
- return true;
- }
复制代码 上述的方法就是在自定义函数的计算方法中返回上下文对象,通过上下文我们可以操作sheet上面的任何单元格。
接下来我们就可以在evaluate中去获取sheet对象来对其他单元格进行赋值了
- FactorialFunction.prototype.evaluate = function () {
- var context = arguments[0];
- var sheet = context.source.getSheet();
- sheet.setValue(1,1,"123456");
- return "OK";
- }
复制代码 最后我们看一下效果:
在A1单元格设置了函数,函数操作了B2单元格
|
|