找回密码
 立即注册

QQ登录

只需一步,快速开始

yeseruanchong

注册会员

6

主题

15

帖子

51

积分

注册会员

积分
51
yeseruanchong
注册会员   /  发表于:2018-7-10 15:46  /   查看:3603  /  回复:4
本帖最后由 yeseruanchong 于 2018-7-10 16:04 编辑

            sheet.setValue(1, 1, 'Press \'Add a Custom Function\' button');
            sheet.setColumnWidth(1, 225);
            sheet.setColumnWidth(2, 100);
            function FactorialFunction() {
                this.name = "FACTORIAL";
                this.maxArgs = 1;
                this.minArgs = 1;
            }
            FactorialFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
            FactorialFunction.prototype.evaluate = function(arg) {

                sheet.setValue(7,8,"2016565");   /// 在这里修改表单的值 为什么不行 ?  一直处于循环中,
                var result = 1;
                if (arguments.length === 1 && !isNaN(parseInt(arg))) {
                    for (var i = 1; i <= arg; i++) {
                        result = i * result;
                    }
                    return result;
                }
                return "#VALUE!";
            };
            var factorial = new FactorialFunction();

            sheet.addCustomFunction(factorial);



感谢解答 ^-^!!!



4 个回复

倒序浏览
yeseruanchong
注册会员   /  发表于:2018-7-10 16:20:55
沙发
看看图片是不是很清楚点...
自自在在做做做做做做做.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-10 18:41:07
板凳
机制问题,公式计算中无法修改表单的值,您需要将
sheet.setValue(7,8,"2016565");  改为
setTimeout(function(){
   sheet.setValue(7,8,"2016565");
},0);
用setTimeout来人为干预JS代码的运行顺序,这样就不会跟机制冲突了
回复 使用道具 举报
yeseruanchong
注册会员   /  发表于:2018-7-11 08:58:35
地板
非常感谢  
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-11 10:05:46
5#
不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部