我的唯一解决方案是否真的让人们将代码复制粘贴到他们自己的文档“脚本编辑器”中,并手动运行onOpen()? (根本不可维护+很难教)。
答案 0 :(得分:2)
如果您的单位使用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文件。
答案 1 :(得分:0)
您还可以将您的应用程序脚本转换为Web应用程序,创建一个简单的onGet()函数并遵循最佳实践并运行您的主要函数来启动脚本。可以将此Web应用程序URL分发给需要运行它的人员,希望对您有所帮助。