javascript - 在公司网络中分发 Google Apps Scripts for Sheets

标签 javascript google-apps-script google-sheets google-drive-api

开发一个简单的脚本。

  • 我的公司使用 Google Drive 来存储其文档等。
  • 我们通过将 Google 产品数据文件加载到电子表格中来搜索我公司的 Google 产品数据文件,但 ImportXML 不能满足我们的所有需求。
  • 所以我制作了一个简单的 Google Apps 脚本文件来处理数据,并将其吐出到打开的电子表格中的当前事件点差。
  • 机制由 UI 菜单/模式组合控制。

终于成功了。

  • 我一直将其开发为附加到电子表格的脚本,但现在我想让其他人可以访问 Google 云端硬盘来使用它。

但是我怎样才能把它告诉我的同事呢?

  • 如何分发此脚本,并在有人加载新的 Google 表格文档时让它运行 onOpen()?
  • 我只想将脚本存储在公司范围的 Google Drive 上,让人们“安装”它或其他东西,然后通过菜单 UI 运行它。
  • 理想情况下,这意味着我可以随时调整脚本,因为人们从同一来源加载脚本。

我唯一的解决方案真的是让人们将代码复制粘贴到他们自己文档的脚本编辑器中,然后手动运行 onOpen() 吗? (根本不可维护 + 难以教授)。

最佳答案

如果您的组织使用的是 G Suite 帐户,则域管理员可以在“域范围内”安装附加组件。

要了解您的域管理员是谁,请使用以下链接:

https://support.google.com/a/answer/6208960

域范围安装与个人在其用户帐户中安装附加组件之间存在差异。

要在全域范围内安装附加组件,域管理员必须登录,并域管理员身份安装附加组件。首先,域管理员必须打开管理控制台。

要登录 G Suite 管理员主页,请使用以下链接:

https://admin.google.com/AdminHome

管理员必须导航到 G Suite Marketplace,找到插件并进行安装。

在安装插件之前,管理员必须从 G Suite Marketplace 启用 Google 插件,或者如果您不想允许安装所有插件,则必须将特定插件列入白名单。

允许安装附加组件:

从管理主页导航:

  • 应用
  • G 套件
  • 云端硬盘和文档
  • 特点与应用
  • 附加组件
  • 开启

白名单:

如果附加组件安装受到一般限制,则可以将特定附加组件列入白名单。为了将附加组件列入白名单,管理员需要附加组件脚本的 App ID。脚本的 App ID 必须由脚本所有者提供。

请注意,此处针对全域安装提供的说明假定该插件已发布到 G Suite Marketplace。文档中解释了如何为 G Suite Marketplace 验证和批准附加组件。

Apply to Publish

Install Marketplace Apps Control User Installation of Marketplace Apps

附加组件的替代品是库:

想要使用该库的用户需要进行一些安装。他们需要从电子表格中打开 Apps 脚本代码编辑器,然后输入库 key 。

Documentation - Library

注意:

Apps 脚本 API 可用于创建新项目(脚本)文件和覆盖现有项目文件。但问题是,脚本需要绑定(bind)到工作表,目前没有办法以编程方式获取绑定(bind)到工作表的项目的脚本 ID。 (如果这发生了变化,并且您注意到了,请发表评论以更新答案)如果您知道绑定(bind)到工作表的项目 ID,则可以使用 Apps Script API 覆盖脚本文件,或者您可以以编程方式更新项目文件的 appsscript.json 文件中的库版本号。这将提供一种将绑定(bind)脚本部署到 Sheet 文件或更新库版本号的方法。您可以手动获取并保存哪些脚本 ID 绑定(bind)到哪些表格文件,然后使用 Apps 脚本 API 覆盖项目文件。用户要么需要创建绑定(bind)到工作表的脚本,然后提供项目文件 ID,要么用户可以复制模板工作表的文件并绑定(bind)脚本。

关于javascript - 在公司网络中分发 Google Apps Scripts for Sheets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567128/

相关文章:

datetime - 如何在 Google 表格中找到一年中最常见的一天?

javascript - 循环遍历单元格范围寻找值

javascript - Angular 6 外部 js、css 引用不起作用

google-apps-script - 为什么基于时间的 GAS 触发器在 V8 中因未知原因被禁用?

google-apps-script - AppScript 中的 Google Sheets 格式日期

google-apps-script - 如何使用 Google 文档附加脚本从旧版本中 check out 代码

javascript - 立即关闭页面时AppS脚本运行两次

javascript - 如何访问内部框架

javascript - 通过选择的 Jquery 更新选择

javascript - 如何同步两个 SELECT 元素