事件对象

简单触发器和 借助可安装的触发器,Apps 脚本 在发生特定事件时自动运行函数。当触发器触发时 Apps 脚本向函数传递事件对象作为参数,通常称为 e。事件对象包含引发 触发器触发。例如,以下示例代码显示了一个简单的 onEdit(e) 针对 Google 表格脚本的触发器,该脚本使用事件对象来确定 单元格已修改。

function onEdit(e){
  // Set a comment on the edited cell to indicate when it was changed.
  var range = e.range;
  range.setNote('Last modified: ' + new Date());
}

本页详细介绍了事件对象中针对不同类型的 触发器。

Google 表格事件

借助各种 Google 表格专用触发器,脚本可以响应用户的 操作。

打开

简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

Spreadsheet 对象,表示脚本要绑定到的 Google 表格文件。

Spreadsheet
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com

更改

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
changeType

更改类型(EDITINSERT_ROWINSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, FORMATOTHER)。

INSERT_ROW
source

Spreadsheet 对象,表示要在其中创建脚本的 Google 表格文件 绑定。

Spreadsheet
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com

修改

简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
oldValue

修改前的单元格值(如果有)。仅在修改 范围是一个单元格。如果单元格没有前一个值,则未定义 内容。

1234
range

一个 Range 对象, 表示已修改的单元格或单元格范围。

Range
source

Spreadsheet 对象,表示脚本要绑定到的 Google 表格文件。

Spreadsheet
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com
value

修改后的新单元格值。仅当修改后的范围是 单个单元格。

10

表单提交

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
namedValues

包含表单提交内容中的问题名称和值的对象。

{
  'First Name': ['Jane'],
  'Timestamp': ['6/7/2015 20:54:13'],
  'Last Name': ['Doe']
}
range

一个 Range 对象, 表示已修改的单元格或单元格范围。

Range
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
values

包含值的数组,其顺序与电子表格中显示的顺序相同。

['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill',
'28', 'Susan', '25']

Google 文档事件

触发器可让 Google 文档在用户打开文档时进行响应。

打开

简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

一个 Document 对象, 表示脚本要绑定到的 Google 文档文件。

Document
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com

Google 幻灯片活动

触发器可让 Google 幻灯片在用户打开演示文稿时进行响应。

打开

(简单)
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

一个 Presentation 对象, 表示脚本要绑定到的 Google 幻灯片文件。

Presentation
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com

Google 表单事件

借助 Google 表单专用触发器,脚本可以在用户修改表单时进行响应 或提交回复

打开

*(简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

一个 Form 对象, 表示脚本要绑定到的 Google 表单文件。

Form
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象, 代表活跃用户(如果有) (具体取决于一组复杂的安全限制)。

amin@example.com

* 此事件在用户打开表单进行回复时不会发生,而是会在 当编辑器打开表单进行修改时。

表单提交

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
response

一个 FormResponse 对象, 代表用户对整个表单的响应

FormResponse
source

一个 Form 对象, 表示脚本要绑定到的 Google 表单文件。

Form
triggerUid

生成此事件的触发器的 ID。

4034124084959907503

Google 日历活动

日历触发器会在用户的日历活动更新(创建、 已修改或删除)。

这些触发器不会告诉您哪个事件发生了变化或发生了什么变化。 而是指示您的代码需要执行增量同步操作 选择最近对日历所做的更改。完整说明 请参阅 同步资源指南(适用于 日历 API

要在 Apps 脚本中与日历同步,请执行以下步骤:

  1. 为以下账号启用高级日历服务: 脚本项目。内置的 日历服务不足以满足 此工作流。
  2. 确定应同步的日历。对于每个这样的日历 执行首次同步 使用日历高级服务的 Events.list() 方法。
  3. 初始同步结果会返回相应日历的 nextSyncToken。 存储此令牌以供日后使用。
  4. 当 Apps 脚本 EventUpdated 触发器触发时指示日历 请执行增量同步 针对受影响的日历使用存储的 nextSyncToken。这是 另一个 Events.list() 请求,但提供 nextSyncToken 将响应限制为 自上次同步以来更改的活动。
  5. 查看同步响应,了解哪些活动进行了更新 让代码做出适当响应例如,您可以记录更改 更新电子表格、发送电子邮件通知或执行其他操作。
  6. 请将您为该日历存储的 nextSyncToken 更新为返回的值 增量同步请求的影响这会强制使下一项同步操作 仅返回最新的更改

EventUpdated

可安装
authMode

来自 ScriptApp.AuthMode 枚举。

FULL
calendarId

发生事件更新的日历的字符串 ID。

susan@example.com
triggerUid

生成此事件的触发器的 ID。

4034124084959907503

Google Workspace 插件活动

onInstall() 触发器运行 在用户安装插件时自动触发。

安装

(简单)
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL

Google Chat 应用事件

如需了解 Google Chat 中的事件对象,请参阅 在 Google Chat 应用中接收和回复互动信息

时间驱动的事件

时间驱动型触发器 (也称为时钟触发器)让脚本在特定时间或特定时间 周期性间隔。

时间驱动(可安装)
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
day-of-month

介于 131 之间。

由于此属性名称包含短划线,必须通过 e['day-of-month'],而不是点表示法。

31
day-of-week

介于 1(周一)到 7(周日)之间。

由于此属性名称包含短划线,必须通过 e['day-of-week'],而不是点表示法。

7
hour

介于 023 之间。

23
minute

介于 059 之间。

59
month

介于 112 之间。

12
second

介于 059 之间。

59
timezone

时区。

UTC
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
week-of-year

介于 152 之间。

由于此属性名称包含短划线,必须通过 e['week-of-year'],而不是点表示法。

52
year

本年。

2015