我的唯一解决方案是否真的让人们将代码复制粘贴到他们自己的文档的脚本编辑器中,并手动运行onOpen()? (根本不可维护+难以教导)。
如果您的组织使用的是G Suite帐户,则域管理员可以在“域范围内”安装加载项。
要了解您的域管理员是谁,请使用以下链接:
https://support.google.com/a/answer/6208960
域范围安装与在其用户帐户中安装加载项的个人之间存在差异。
对于要在域范围内安装的加载项,必须登录域管理员,并以域管理员身份安装加载项。首先,域管理员必须打开管理控制台。
要登录G Suite管理员主页,请使用以下链接:
https://admin.google.com/AdminHome
管理员必须导航到G Suite Marketplace,找到该插件并进行安装。
在安装加载项之前,管理员必须从G Suite Marketplace启用Google加载项,或者如果您不想允许安装所有加载项,则必须将特定加载项列入白名单。
从管理主页导航:
如果附加安装一般受到限制,则可以将特定加载项列入白名单。为了将加载项列入白名单,管理员将需要加载项脚本的App ID。脚本的App ID必须由脚本的所有者提供。
请注意,此处提供的用于域范围安装的说明假定该加载项已发布到G Suite Marketplace。文档中介绍了为G Suite Marketplace验证并批准的插件。
Install Marketplace Apps Control User Installation of Marketplace Apps
附加组件的替代方案是库:
想要使用该库的用户需要进行一些安装。他们需要从电子表格中打开Apps Script代码编辑器,然后输入库密钥。
Apps Script API可用于创建新项目(脚本)文件并覆盖现有项目文件。但问题是,脚本需要绑定到Sheet,并且目前没有以编程方式获取绑定到Sheets的项目的脚本ID的方法。 (如果此更改,您注意到,然后发表评论以更新答案)如果您知道绑定到工作表的项目ID,那么您可以使用Apps Script API覆盖脚本文件,或者您可以以编程方式更新项目文件的appsscript.json文件中的库版本号。这将提供一种方法将绑定脚本部署到Sheet的文件,或更新库版本号。您可以手动获取并保存哪些脚本ID绑定到Sheets文件,然后使用Apps Script API覆盖项目文件。用户要么需要创建绑定到Sheet的脚本,然后提供项目文件ID,要么用户可以使用绑定到它的脚本复制模板Sheet的文件。