这是一种解决方法,如果您粘贴到这个通用包装函数中,它允许您调用任何库函数。然后你可以从电子表格中调用它。
例如,如果我有一个名为 MyLib 的库,其中包含一个函数 add(x, y)(假设 x 在单元格 A1 中,y 在单元格 A2 中),我可以这样调用它: =LIB_FUNC("MyLib", "add" , A1, A2)。
这有点难看,但至少允许我只需要粘贴这一个函数,然后访问任何库函数。请注意,这取决于调用包装函数时范围内的“this”对象的未记录结构。这可能会随着时间的推移而中断。可能会看看我是否可以将其作为附加组件发布。
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;
}