如何从附加组件加载Google Apps Script UDF以在Google表格中使用?



我正在开发一个包含大量电子表格函数的附加组件。这些被分成许多不同的部分,并存储在附加组件文件树中的不同文件中。我想到了一个菜单系统,其中复选框将它们捆绑在一起,以便一个可以加载一个但不能加载另一个,或者一个和许多其他。

就是这个想法。问题是,如何实际实现这一目标?你如何对Sheets(或任何控制这种事情的子系统)说:"嘿,看到这个充满功能的.gs文件了吗?加载它!"?

与此相关的是进一步的改进,如果可以实现的话,能够卸载一个功能块,也就是说,"嘿,看到这个文件充满了你 20 分钟前加载的函数吗?卸掉他们!

那么有没有从附加组件加载UDF的机制呢?或者这是我们将在Google Apps Script v6中看到的?

在谷歌表格术语中,UDF被称为自定义函数。

在Google文档编辑器(文档,表格,幻灯片)上,自定义菜单不能包含真实的复选框,但您可以创建带有图标或字符的"动态菜单",以显示打开/关闭的功能,或使用HTML服务对话框或侧边栏使用实际复选框。

自定义函数是在全局范围内定义的,因此它们始终都是公共函数。通过使用少量自定义函数作为"私有自定义函数"的网关,可以避免将"所有自定义函数"作为"公共自定义函数"。如下所示:

function myCustomFunction(choosen){
var localfunctions = {
a:function localfunction1(){ return 'one result'},
b:function localfunction2(){ return 'another result'}
}
return  localfunctions[choosen]()
}

真正的私有函数具有下划线作为函数名称的最后一个字符。您的"公共自定义函数"可以调用它们,而不是使用本地函数。

另一种选择是将自定义函数放在外部项目上,并将其作为 API 启用。有关将应用脚本项目启用为 API 的详细信息,请参阅 https://developers.google.com/apps-script/api/how-tos/execute#step_1_deploy_the_script_as_an_api_executable

最新更新