包含整体属性和项目的表单。属性包括标题、设置以及响应的存储位置。内容项包括复选框或单选按钮等问题项,而布局项则是指分页符等内容。您可以通过 FormApp
访问或创建表单。
// Open a form by ID and create a new spreadsheet. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var ss = SpreadsheetApp.create('Spreadsheet Name'); // Update form properties via chaining. form.setTitle('Form Name') .setDescription('Description of form') .setConfirmationMessage('Thanks for responding!') .setAllowResponseEdits(true) .setAcceptingResponses(false); // Update the form's response destination. form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
方法
详细文档
addCheckboxGridItem()
附加一个新的问题项,以列和行网格的形式呈现,允许回复者在一系列复选框中逐行选择多项。
返回
CheckboxGridItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addCheckboxItem()
附加新的问题项,允许受访者选择一个或多个复选框,以及可选的“其他”字段。
返回
CheckboxItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addDateItem()
addDateTimeItem()
附加新问题项,允许回复者指明日期和时间。
返回
DateTimeItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addDurationItem()
附加新的问题项,允许回复者指明时间长度。
返回
DurationItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addEditor(emailAddress)
addEditor(user)
addEditors(emailAddresses)
addGridItem()
addImageItem()
addListItem()
addMultipleChoiceItem()
附加新的问题项,允许受访者从单选按钮列表或可选的“其他”字段中选择一个选项。
返回
MultipleChoiceItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addPageBreakItem()
附加标记了页面开头的新布局项。
返回
PageBreakItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addParagraphTextItem()
附加新的问题项,允许回复者输入文本块。
返回
ParagraphTextItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addScaleItem()
addSectionHeaderItem()
附加新的布局项,直观地指示部分的开始。
返回
SectionHeaderItem
- 新创建的内容
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
addTextItem()
addTimeItem()
addVideoItem()
canEditResponse()
确定表单是否在提交后显示用于编辑回复的链接。
无论此设置如何,FormResponse.getEditResponseUrl()
方法都允许拥有表单编辑权限的脚本作者生成可用于修改响应的网址。
返回
Boolean
- 如果表单显示“编辑您的回复”链接,则为 true
;否则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
collectsEmail()
确定表单是否会收集回复者的电子邮件地址。
返回
Boolean
- 如果表单收集电子邮件地址,则为 true
;如果不收集表单,则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
createResponse()
创建表单的新响应。要回答问题,请根据相应内容创建 ItemResponse
,然后通过调用 FormResponse.withItemResponse(response)
将其附加到此表单回复中。如需保存已组合的响应,请调用 FormResponse.submit()
。
返回
FormResponse
- 新创建的表单响应
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
deleteAllResponses()
deleteItem(index)
deleteItem(item)
deleteResponse(responseId)
从表单的回复存储区中删除单个回复。此方法不会删除存储在外部响应目标位置(如电子表格)中的响应副本,但会从表单摘要视图中移除响应。可以使用 FormResponse.getId()
检索响应 ID。
参数
名称 | 类型 | 说明 |
---|---|---|
responseId | String | 要删除的表单回复的 ID |
返回
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getConfirmationMessage()
获取表单的确认消息。
返回
String
- 表单的确认消息
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getCustomClosedFormMessage()
获取表单不接受回复时显示的自定义消息,或者设置空字符串(如果尚未设置自定义消息)。
返回
String
- 表单不接受回复时显示的自定义消息;如果未设置自定义消息,则为空字符串
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getDescription()
获取表单的说明。
返回
String
- 表单说明
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getDestinationId()
获取表单回复的 ID。
返回
String
- 表单回复目的地的 ID
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getDestinationType()
获取表单的响应目标位置的类型。
返回
DestinationType
- 表单的响应目标位置的类型
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getEditUrl()
获取可用于访问表单编辑模式的网址。
返回
String
- 用于修改表单的网址
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getEditors()
getId()
获取表单的 ID。
返回
String
- 表单的 ID
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getItemById(id)
getItems()
getItems(itemType)
getPublishedUrl()
获取可用于响应表单的网址。
返回
String
- 用于回复表单的网址
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponse(responseId)
根据回复 ID 获取单个表单回复。您可以从 FormResponse.getId()
检索响应 ID。
参数
名称 | 类型 | 说明 |
---|---|---|
responseId | String | 表单回复的 ID |
返回
FormResponse
- 表单响应
抛出
Error
- 如果响应不存在
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponses()
获取表单的所有响应的数组。
返回
FormResponse[]
- 包含表单所有响应的数组
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponses(timestamp)
获取给定日期和时间后表单的所有回复的数组。
参数
名称 | 类型 | 说明 |
---|---|---|
timestamp | Date | 系统应返回表单回复的最早日期和时间 |
返回
FormResponse[]
- 表单回复列表
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getShuffleQuestions()
确定表单的每个页面上的问题顺序是否随机。
返回
Boolean
- 如果表单每个页面上的问题顺序是随机的,则为 true
;否则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getSummaryUrl()
获取可用于查看表单回复摘要的网址。除非将 setPublishingSummary(enabled)
设置为 true
,否则只有拥有表单编辑权限的用户才能访问该网址。
返回
String
- 用于查看回复摘要的网址
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getTitle()
获取表单的标题。
返回
String
- 表单的标题
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
hasLimitOneResponsePerUser()
确定表单是否允许每位回复者回复一次。如果值为 true
,脚本根本无法提交表单回复。
返回
Boolean
- 如果表单仅允许每个回复者发送一个回复,则为 true
;否则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
hasProgressBar()
确定表单是否显示进度条。
返回
Boolean
- 如果表单显示进度条,则为 true
;如果表单未显示进度条,则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
hasRespondAgainLink()
确定表单是否在受访者填写完表单后显示用于提交其他回复的链接。
返回
Boolean
- 如果表单显示“提交其他回复”链接,则返回 true
;如果未显示,则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
isAcceptingResponses()
确定表单目前是否接受回复。
返回
Boolean
- 如果表单接受回复,则为 true
;如果表单不接受,则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
isPublishingSummary()
确定表单是否在受访者填写完表单后显示用于查看回复摘要的链接。
返回
Boolean
- 如果表单显示“查看先前的回复”链接,则显示 true
;如果未显示,则显示 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
isQuiz()
确定表单是否为测验。
返回
Boolean
- 如果表单接受回复,则为 true
;如果表单不接受,则为 false
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
moveItem(from, to)
moveItem(item, toIndex)
removeDestination()
取消表单与当前回复目的地的关联。解除关联的目标位置仍会保留之前的所有响应的副本。所有表单,包括未明确设置目标位置的表单,都在表单的回复存储区中保存回复的副本。如果表单当前没有响应目的地,此方法将不起作用。
返回
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
removeEditor(emailAddress)
removeEditor(user)
requiresLogin()
确定表单是要求回复者先登录相同网域中的帐号还是子网域再回复。
返回
Boolean
- 如果表单要求用户登录,则设为 true
;如果用户不需要登录,则设为 false
setAcceptingResponses(enabled)
setAllowResponseEdits(enabled)
设置表单是否在提交后显示用于编辑回复的链接。新表单的默认值为 false
。
无论此设置如何,FormResponse.getEditResponseUrl()
方法都允许拥有表单编辑权限的脚本作者生成可用于修改响应的网址。
参数
名称 | 类型 | 说明 |
---|---|---|
enabled | Boolean | 如果表单应显示“编辑您的回复”链接,则返回 true ;如果表单未显示,则显示 false |
返回
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setCollectEmail(collect)
setConfirmationMessage(message)
setCustomClosedFormMessage(message)
setDescription(description)
setDestination(type, id)
设置表单回复的保存目标位置。所有表单(包括未明确设置目标位置的表单),都在表单的回复存储区中保存回复的副本。
参数
名称 | 类型 | 说明 |
---|---|---|
type | DestinationType | 表单回复目标位置的类型 |
id | String | 表单回复目的地的 ID |
返回
抛出
Error
- 如果指定的目的地 ID 无效
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setIsQuiz(enabled)
设置表单是否为测验。新表单的默认值为 false
。
已评分的问题只能在测验中使用,因此将此选项设为 false 会导致从所有问题中移除所有评分选项。
测验设置仅在新版表单界面中可用;创建表单将启用表单,以使用新版界面。
参数
名称 | 类型 | 说明 |
---|---|---|
enabled | Boolean | 如果应为表单启用测验功能,则为 true ;否则为 false |
返回
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setLimitOneResponsePerUser(enabled)
setProgressBar(enabled)
setPublishingSummary(enabled)
setRequireLogin(requireLogin)
设置表单是否要求回复者先登录同一网域中的帐号或子网域,然后才能回复。除非网域管理员更改了默认设置,否则新表单的默认值为 false
。
此功能仅适用于 Google Workspace 用户创建的表单。其他类型的 Google 帐号的用户不能要求用户登录。
参数
名称 | 类型 | 说明 |
---|---|---|
requireLogin | Boolean | 如果表单要求用户登录,则返回 true ;如果用户不需要登录,则设为 false |
返回
Form
- 当前形式(用于链接)
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
setShowLinkToRespondAgain(enabled)
setShuffleQuestions(shuffle)
setTitle(title)
shortenFormUrl(url)
将表单的长网址转换为短网址。如果长网址不属于 Google 表单,则会抛出异常。
参数
名称 | 类型 | 说明 |
---|---|---|
url | String |
返回
String
- http://goo.gl/forms/1234
形式的网址
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submitGrades(responses)
为给定的 FormResponses 提交成绩。
如果您的代码包含 onFormSubmit
触发器,则调用 submitGrades()
会触发 onFormSubmit
条件,并导致无限循环。为了防止无限循环,请在调用 submitGrades()
之前添加用于检查成绩是否已存在的代码。
参数
名称 | 类型 | 说明 |
---|---|---|
responses | FormResponse[] |
返回
授权
使用此方法的脚本需要通过以下一个或多个范围进行授权:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms