如何从加载项加载Google Apps脚本UDF以在Google表格中使用?

问题描述 投票:0回答:1

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

这就是主意。这个问题是,一个人如何实现这一目标? How do you say Sheets(或任何子系统是控制这种事情),“嘿,看到这个.gs文件充满了功能?加载它!”?

与此相关的是进一步的改进,如果可以实现的话,很容易卸载一个功能块,也就是说,“嘿,看到这个文件充满了你20分钟前加载的功能?卸载它们!”

那么是否有一种从附加组件加载UDF的机制?或者这是我们在Google Apps Script v6中看到的内容吗?

google-apps-script google-sheets user-defined-functions custom-function google-apps-script-addon
1个回答
0
投票

在Google表格术语上,UDF称为custom functions

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

自定义函数是在全局范围内定义的,因此它们都是公共函数。通过使用少量自定义函数作为“私有自定义函数”的网关,您可以避免将“所有自定义函数”作为“公共自定义函数”。类似于以下内容:

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

实际私有函数将下划线作为函数名的最后一个字符。您的“公共自定义函数”可以调用它们而不是使用本地函数。

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

© www.soinside.com 2019 - 2024. All rights reserved.