找回密码
 立即注册

QQ登录

只需一步,快速开始

Alvin

初级会员

40

主题

121

帖子

359

积分

初级会员

积分
359

微信认证勋章

[已处理] 公式计算问题

Alvin
初级会员   /  发表于:2016-3-4 11:15  /   查看:12048  /  回复:23
我自己定义了一个公式,在json文件中存在的不能计算,显示#NAME?,但是通过sheet.setFormula方法设置的可以计算出数据,是什么原因?

23 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-3-4 11:56:00
沙发
没太明白。你是说前后台传递数据,自定义公式没法传递吧?自定义公式不再固有的schema中,所以用json不行,必须用代码设置。
回复 使用道具 举报
Alvin
初级会员   /  发表于:2016-3-4 12:24:00
板凳
回复 2楼gw0506的帖子

json格式我是从后台解析过来的,格式中包含公式,公式是在前台自定义的,在前台sheet.setFormula写了一个测试是可以计算的,但是后台上来的json中的公式不能计算。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-3-4 13:41:00
地板
这是由于导入 JSON 的时候会清空 Sheet 和 Spread 上的自定义函数。
你可以将自定义函数挂在全局来解决, 比如:
GcSpread.Sheets.Calc.Functions.defineGlobalCustomFunction( "myFunction", function (args){
return args[0] + args[1];
}
);
回复 使用道具 举报
Alvin
初级会员   /  发表于:2016-3-4 13:58:00
5#
回复 4楼CCKan的帖子

我是先带入的JSON后自定义的函数。
用了你说的这种方式也不行?
有没有重新计算的方法?
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-3-4 14:01:00
6#
你用 4 楼的方法先定义自定义函数后导入 JSON 就行。
回复 使用道具 举报
Alvin
初级会员   /  发表于:2016-3-4 14:05:00
7#
回复 6楼CCKan的帖子

先定义公式再导入JSON好使 ,谢谢!
回复 使用道具 举报
Alvin
初级会员   /  发表于:2016-3-4 14:29:00
8#
回复 6楼CCKan的帖子

但是第二次打开的时候会报错误,Attempt to override function while override is not allowed
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-3-4 14:36:00
9#
这个错误应该是你同一个函数定义了多次。同一个自定义函数只需要在页面加载完毕以后定义一次就好了,后面就可以直接使用,导入JSON 并不会清除全局定义的函数。
回复 使用道具 举报
Alvin
初级会员   /  发表于:2016-3-4 14:47:00
10#
回复 9楼CCKan的帖子

有没有清除全局自定义函数的方法恩
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部