找回密码
 立即注册

QQ登录

只需一步,快速开始

yitong

金牌服务用户

10

主题

53

帖子

376

积分

金牌服务用户

积分
376
yitong
金牌服务用户   /  发表于:2016-11-26 00:01  /   查看:7638  /  回复:19
你好!为什么我定义的函数,excel单元格区域,显示#NAME?。
因为我后台要获取单元格的内容,然后提取函数进行计算。
我该怎么自定义函数,才能正常显示呢?
如下图。


blob579262084.png

19 个回复

倒序浏览
CCKan
银牌会员   /  发表于:2016-11-28 09:02:42
沙发
你需要定义一个 customFunction, 比如:
            GcSpread.Sheets.Calc.Functions.defineGlobalCustomFunction("REP_ACC_QMYE", function (args) {
                return args[0];
            });
回复 使用道具 举报
yitong
金牌服务用户   /  发表于:2016-11-28 20:21:57
板凳
我加了这个方法试了下,基本可以实现我的业务需求,但是我这个函数是自定义的,可以动态创建。
既然是动态的,那这个参数"REP_ACC_QMYE",我怎么设置为动态。

难道要每建一个自定义函数,就要定义这个JS方法吗?
那这样就做不到动态创建了。
回复 使用道具 举报
yitong
金牌服务用户   /  发表于:2016-11-28 20:43:12
地板
我可以在参数里面加个正则表达式吗?
只要是REP开头的都走这个方法。
GcSpread.Sheets.Calc.Functions.defineGlobalCustomFunction("REP_正则表达式", function (args) {
                return args[0];
            });
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-11-29 09:24:46
5#
本帖最后由 CCKan 于 2016-11-29 09:30 编辑

推荐你用另一种思路:只定义一个 REP 函数,然后用参数区分,比如公式写成: = REP("ACC_QMYE", 2, 1, "001", "本年度", .....
函数的名字不能用正则表达式,只能一个一个加
回复 使用道具 举报
yitong
金牌服务用户   /  发表于:2016-11-30 09:36:50
6#
ok,这也是个解决办法,多谢了。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-30 18:16:15
7#
回复 使用道具 举报
yitong
金牌服务用户   /  发表于:2017-1-6 21:48:20
8#
yitong 发表于 2016-11-28 20:43
我可以在参数里面加个正则表达式吗?
只要是REP开头的都走这个方法。
GcSpread.Sheets.Calc.Functions.de ...

V10好像没有这个方法,
请问V10的方法是什么啊
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-9 10:53:05
9#
回复 使用道具 举报
yitong
金牌服务用户   /  发表于:2017-1-9 15:59:51
10#
本帖最后由 yitong 于 2017-1-9 16:03 编辑
blob529623107.png
改成这样,报错。
GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("RES",function (args) {
        return "";
});
1.png
2.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部