找回密码
 立即注册

QQ登录

只需一步,快速开始

huang1600

初级会员

23

主题

90

帖子

307

积分

初级会员

积分
307

微信认证勋章

huang1600
初级会员   /  发表于:2018-7-2 11:45  /   查看:4019  /  回复:3
定义好的ssjion的表格中的某些单元格中设置以下自定义公式。     

var Asrand = function () { }

   Asrand.prototype = new GC.Spread.CalcEngine.Functions.Function("ASRAND", 2, 2);

    Asrand.prototype.evaluate = function ( arg1, arg2) {
                if(arg1||arg2){
    var value= Math.random() * (arg2 - arg1) + arg1;  
          return value;

  }else{
          return "";
  }



            }
//添加全局公式(必须)
GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("ASRAND", new Asrand());
现有个需求加载该表格模板后,需要移除该自定义公式。
spr.fromJSON(formJsonVal);
var sheet =  spr.getActiveSheet();
sheet.removeCustomFunction('ASRAND'); //移除不成功。

需要如何做才能移除该公式呢?

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-2 17:34:55
沙发
回复 使用道具 举报
huang1600
初级会员   /  发表于:2018-7-3 09:27:22
板凳
是起作用了。但是并不是我想要的。有没有等同于下列代码所实现的API呢?
  var sheet =  spread.getActiveSheet();
                    var wc=sheet.getColumnCount();
                    var rc=sheet.getRowCount();
                    for (var i = 0; i < rc; i++){       
                                    for (var ii = 0; ii < wc; ii++){       
                                            var str=sheet.getFormula(i, ii)
                                            if(str){
                                                    if(str.indexOf("ASRAND") != -1 ){
                                                            sheet.setFormula(i, ii,'')//把单元格内的公式移除
                                                    }
                                            }
                                                                    }
                  
                                                   }
   
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-3 12:08:37
地板
没有,这个您自己写个循环封装成一个方法,然后调用该方法就可以了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部