尝试在谷歌电子表格中的新的库功能。 我有包括与“测试”的标识符的库和库实现的功能为“foo()”
进入= Test.foo()到电子表格单元格给出错误:“未知函数名TEST.FOO”
如果我在电子表格中创建一个函数来包装库函数:
function foo()
{
return Test.foo();
}
然后在我的电子表格中以后电池使用= FOO(),一切都很好。 为所有人创造库函数包装函数,使他们能够在电子表格单元格中使用使得使用库不太理想。 有没有一种方法调用从电子表格单元格的库函数?
这里没有目前的方式来直接调用这些库函数从细胞的自定义功能。 创建一个包装,因为你所做的,就是目前这样做的方法。 如果您希望能够直接调用库函数的自定义功能,请提出,作为对一个问题的问题跟踪器 。
这是一种解决方法,可以让你,如果你在这一个通用的包装函数调用粘贴任何库函数。 然后你就可以从电子表格调用此。
举例来说,如果我有一个名为MyLib中库函数添加(X,Y)(假装x在单元格A1和Y是在单元格A2),我可以这样称呼它:= LIB_FUNC(“MyLib中”,“添加” ,A1,A2)。
这是一个有点丑陋,但至少可以让我只需要粘贴一个函数,然后访问任何库函数。 请注意,这取决于“这个”对象调用包装函数时在范围内的无证结构。 小机会,这可能会破坏随着时间的推移。 可能会看到,如果我能发布这个作为一个附加的。
function LIB_FUNC(libraryName, functionName) {
var result;
var lib = this[libraryName];
var extraArgs = [];
if (lib) {
var func = lib[functionName];
if (func) {
if (arguments.length > 2) {
extraArgs = Array.apply(null, arguments).slice(2);
}
result = func.apply(this, extraArgs);
} else {
throw "No such function: " + functionName;
}
} else {
throw "No such library: " + libraryName;
}
return result;
}