我想知道是否可以将我的自定义脚本分发到我工作区中的所有工作表。我想到了使用库或附加组件的不同方式,但它们都缺少我想要完成的一些要点。
- 我希望它只对我的 Google 帐户保密
- 我需要它为我的表格帐户中的每个文件运行 onOpen(e) 触发器 (这样我就可以为我的所有文件添加自定义菜单)
- 我还需要为每个文件设置一个时间触发器,以便我的 main() 函数每晚运行(现在我总是在重新运行我的 main 函数时创建一个新触发器)
到目前为止,我可以使用库选项并为我的所有文件创建一个新脚本,并从该库中调用我的主函数。此解决方法不包括 onOpen 触发器事件。当我使用 run->test as addon 的能力并手动添加所有新文件(每个新月出现)时,我也缺乏触发功能的可能性。
如果您有解决方案想法,我将非常高兴。
新泽西州
最佳答案
- 插件可以私下发布。 Private Add-ons
- 默认情况下,库是私有(private)的 - 您帐户以外的人可以将您的脚本用作库的唯一方法是设置文件共享以允许他们使用它。 Gaining access to a library
- 库不能运行简单的触发器,但插件可以。保留函数名称 onOpen() 不能由库触发。 See Table - Resource Scoping
- 插件可以运行 onOpen() 函数
- 插件可以创建插件菜单。
- 加载项可以为其安装的每个文档创建一个基于时间的触发器。引用:“每个加载项只能为每个用户、每个文档的每种类型创建一个触发器”Add-on Restrictions
如果您想执行覆盖 Apps 脚本文件之类的操作,可以使用 Apps 脚本 API 来完成。即使是绑定(bind)到文档(表格、表单、文档)的脚本项目也可以使用 Apps 脚本 API 覆盖。
StackOverflow answer - Update an Apps Script file using Apps Script
您还可以使用 Apps 脚本 API 更新 Apps 脚本文件的 list 文件,从而以编程方式将库和库版本添加到现有的 Apps 脚本文件。
关于javascript - Google Apps 脚本库和脚本分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53459203/