如果脚本是从 Google 表格、Google 文档、 Google 幻灯片或 Google 表单文档创建的,而不是作为独立脚本创建的,则该脚本会绑定到相应文档。绑定脚本所附加到的文件称为“容器”。 绑定脚本的行为通常与独立脚本类似,但它们不会显示在 Google 云端硬盘中,无法从所绑定的文件中分离,并且对父文件具有一些特殊权限。
脚本也可以绑定到 Google 协作平台,但这些脚本几乎总是部署为 Web 应用。绑定到表格、文档、幻灯片或表单的脚本也可以成为 Web 应用,但这种情况并不常见。
绑定脚本实际上是未发布的 Google Workspace 插件,仅适用于所绑定的文件。
创建绑定脚本
您可以在文档、表格、幻灯片和表单中创建绑定脚本。
文档、表格或幻灯片
如需在文档、表格或 幻灯片中创建绑定脚本,请在文档中打开文档、在表格中打开 电子表格或在幻灯片中打开演示文稿,然后依次点击 扩展 > Apps 脚本。如需日后重新打开该脚本,请执行相同的 操作,或从 Apps 脚本 信息中心打开该脚本。
表单
如需在表单中创建绑定脚本,请打开表单,然后依次点击 更多 > 脚本编辑器。如需日后重新打开该脚本,请执行相同的操作,或从 Apps 脚本信息中心打开该脚本。
clasp 工具无法创建绑定脚本,但它
可以克隆和修改绑定脚本。
特殊方法
绑定脚本可以调用一些独立脚本无法调用的方法:
getActiveSpreadsheet、getActiveDocument、getActivePresentation和getActiveForm允许绑定脚本引用其父文件,而无需引用 文件的 ID。getUi允许 绑定脚本访问其父文件的界面,以添加 自定义 菜单、对话框和侧边栏。- 在表格中,
getActiveSheet、getActiveRange和getActiveCell允许脚本确定用户的当前工作表、所选单元格范围或 所选单个单元格。setActiveSheet和setActiveRange允许脚本更改这些选择。 - 在文档中,
getActiveTab、getCursor和getSelection允许脚本确定用户的当前标签页、用户 光标的位置或所选文本。setActiveTab、setCursor和setSelection允许脚本更改这些选择。
这些方法仅适用于从脚本编辑器、菜单项、对话框、边栏或触发器运行的绑定脚本。当绑定脚本作为 Web 应用运行或使用 Google Apps 脚本 API 运行时,这些 方法不可用。
自定义菜单、对话框和边栏
绑定脚本可以通过添加 自定义菜单 和 对话框或边栏来自定义表格、文档和 表单。脚本只能与打开文件的当前实例的界面进行交互。绑定到一个文档的脚本无法影响另一个文档的界面。
触发器
绑定脚本可以使用 简单触发器,例如
特殊的 onOpen 函数,该函数会在具有修改权限的用户打开文件时自动运行
。与所有类型的脚本一样,它们也可以使用
可安装的触发器。
自定义函数
自定义函数是绑定到表格的
脚本中的函数,您可以使用
语法 =myFunctionName() 直接从单元格调用该函数。自定义函数与表格中的数百个
内置函数类似,不同之处在于您需要定义
自定义函数的行为。AVERAGESUM
访问绑定脚本
只有具有容器修改权限的用户才能运行其绑定脚本。 仅具有查看权限的协作人员无法打开脚本编辑器。如果他们创建容器文件的副本,则会成为该副本的所有者,并且可以查看和运行脚本的副本。
如需了解如何共享脚本的容器文件,请参阅共享 云端硬盘中的文件。
所有容器绑定脚本都使用为容器文件定义的相同的所有者、查看者和编辑器访问权限列表。无论谁创建了新的脚本项目,容器所有者都会获得该项目的所有权。