Class Form

表单

包含整体属性和项的表单。属性包括标题、设置以及 会存储响应。项包括复选框或单选项等问题项,而布局 项是指分页符之类的内容。可以通过 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附加一个新的问题项,以列和行网格的形式表示,允许 回答者可以从一系列复选框中选择每行多个选项。
addCheckboxItem()CheckboxItem附加一个新的问题项,可让回复者选择一个或多个复选框, 以及可选的“其他”参数字段。
addDateItem()DateItem附加一个新问题项,可让回复者指定日期。
addDateTimeItem()DateTimeItem附加一个新的问题项,以便回复者指定日期和时间。
addDurationItem()DurationItem附加一个新问题项,可让回复者指定时间长度。
addEditor(emailAddress)Form将指定用户添加到 Form 的编辑者列表中。
addEditor(user)Form将指定用户添加到 Form 的编辑者列表中。
addEditors(emailAddresses)FormForm 的编辑器列表添加给定的一组用户。
addGridItem()GridItem附加一个新的问题项,以列和行网格的形式表示,允许 回答者从一系列单选按钮中每行选择一个选项。
addImageItem()ImageItem附加可显示图片的新布局项。
addListItem()ListItem附加一个新的问题项,以便回复者从下拉列表中选择一个选项 列表。
addMultipleChoiceItem()MultipleChoiceItem添加新的问题项,以便回复者从单选选项列表中选择一个选项 或可选的“其他”字段。
addPageBreakItem()PageBreakItem添加用于标记页面起始位置的新布局项。
addParagraphTextItem()ParagraphTextItem添加允许回复者输入一段文本的新问题项。
addScaleItem()ScaleItem附加一个新的问题项,可让回复者从编号中进行选择 单选按钮。
addSectionHeaderItem()SectionHeaderItem附加一个新的布局项,用于直观地指示某个部分的开头。
addTextItem()TextItem附加一个新问题项,允许回复者输入一行文字。
addTimeItem()TimeItem附加一个新的问题项,可让回复者指定一天中的时间。
addVideoItem()VideoItem附加用于显示视频的新布局项。
canEditResponse()Boolean确定表单是否在提交回复后显示用于编辑回复的链接。
collectsEmail()Boolean确定表单是否收集受访者的电子邮件地址。
createResponse()FormResponse创建对表单的新回复。
deleteAllResponses()Form从表单的回复存储区中删除所有已提交的回复。
deleteItem(index)void删除表单所有项中给定索引处的项。
deleteItem(item)void删除给定项。
deleteResponse(responseId)Form从表单的响应存储区中删除单个响应。
getConfirmationMessage()String获取表单的确认消息。
getCustomClosedFormMessage()String获取表单不接受回复时显示的自定义消息,消息内容为空 字符串。
getDescription()String获取表单的说明。
getDestinationId()String获取表单响应目的地的 ID。
getDestinationType()DestinationType获取表单回复目的地的类型。
getEditUrl()String获取可用于访问表单编辑模式的网址。
getEditors()User[]获取此 Form 的编辑器列表。
getId()String获取表单的 ID。
getItemById(id)Item获取具有指定 ID 的项。
getItems()Item[]获取表单中所有项的数组。
getItems(itemType)Item[]获取给定类型的所有项的数组。
getPublishedUrl()String获取可用于回复表单的网址。
getResponse(responseId)FormResponse根据回复 ID 获取单个表单回复。
getResponses()FormResponse[]获取包含表单的所有回复的数组。
getResponses(timestamp)FormResponse[]获取给定日期和时间之后的所有表单回复的数组。
getShuffleQuestions()Boolean确定表单每个页面上的问题顺序是否为随机。
getSummaryUrl()String获取可用于查看表单回复摘要的网址。
getTitle()String获取表单的标题。
hasLimitOneResponsePerUser()Boolean确定表单是否允许每个回复者提交一次回复。
hasProgressBar()Boolean确定表单是否显示进度条。
hasRespondAgainLink()Boolean确定表单是否在回复者之后显示用于提交另一回复的链接 填写表单。
isAcceptingResponses()Boolean确定表单目前是否接受回复。
isPublishingSummary()Boolean确定表单是否在回复者之后显示用于查看回复摘要的链接 填写表单。
isQuiz()Boolean确定表单是否为测验。
moveItem(from, to)Item将表单所有项中位于指定索引处的项移动到另一个指定索引。
moveItem(item, toIndex)Item将给定项移到表单中的所有项之间的指定索引。
removeDestination()Form取消表单与其当前回复目标位置的关联。
removeEditor(emailAddress)FormForm 的编辑者列表中移除指定用户。
removeEditor(user)FormForm 的编辑者列表中移除指定用户。
requiresLogin()Boolean确定表单是要求回复者登录同一网域中的账号,还是 子网域,然后再做出响应。
setAcceptingResponses(enabled)Form设置表单目前是否接受回复。
setAllowResponseEdits(enabled)Form设置表单是否在提交回复后显示用于编辑回复的链接。
setCollectEmail(collect)Form设置表单是否收集回复者的电子邮件地址。
setConfirmationMessage(message)Form设置表单的确认消息。
setCustomClosedFormMessage(message)Form设置表单不接受回复时显示的消息。
setDescription(description)Form设置表单的说明。
setDestination(type, id)Form设置保存表单回复的目标位置。
setIsQuiz(enabled)Form设置表单是否为测验。
setLimitOneResponsePerUser(enabled)Form设置表单是否允许每个回复者提交一次回复。
setProgressBar(enabled)Form设置表单是否有进度条。
setPublishingSummary(enabled)Form设置表单是否在回复者提交后显示用于查看回复摘要的链接 表单。
setRequireLogin(requireLogin)Form设置表单是否需要回复者登录同一网域或 子网域,然后再做出响应。
setShowLinkToRespondAgain(enabled)Form设置表单是否在回复者填写完毕后显示用于提交其他回复的链接 表单。
setShuffleQuestions(shuffle)Form设置表单每个页面上的问题顺序是否为随机。
setTitle(title)Form设置表单的标题。
shortenFormUrl(url)String将表单的长网址转换为短网址。
submitGrades(responses)Form提交指定 FormResponse 的成绩。

详细文档

addCheckboxGridItem()

附加一个新的问题项,以列和行网格的形式表示,允许 回答者可以从一系列复选框中选择每行多个选项。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a checkbox grid item.
const item = form.addCheckboxGridItem();

// Sets the title 'Where did you celebrate New Year's?'
item.setTitle('Where did you celebrate New Year's?');

// Sets the grid's rows and columns.
item.setRows(['New York', 'San Francisco', 'London'])
  .setColumns(['2014', '2015', '2016', '2017']);

返回

CheckboxGridItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addCheckboxItem()

附加一个新的问题项,可让回复者选择一个或多个复选框, 以及可选的“其他”参数字段。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a checkbox item.
const item = form.addCheckboxItem();

// Sets the title of the checkbox item to 'Do you prefer cats or dogs?'
item.setTitle('Do you prefer cats or dogs?');

// Sets the choices.
item.setChoiceValues(['Cats', 'Dogs']);

返回

CheckboxItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addDateItem()

附加一个新问题项,可让回复者指定日期。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a date item.
const item = form.addDateItem();

// Sets the title to 'When were you born?'
item.setTitle('When were you born?');

// Sets the description for the date item.
item.setHelpText('Some helper text.');

返回

DateItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addDateTimeItem()

附加一个新的问题项,以便回复者指定日期和时间。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a question with date and time inputs.
const item = form.addDateTimeItem();

// Sets the title to 'When were you born?'
item.setTitle('When were you born?');

// Sets the question as required.
item.setRequired(true);

返回

DateTimeItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addDurationItem()

附加一个新问题项,可让回复者指定时间长度。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a question with a duration input.
const item = form.addDurationItem();

// Sets the title to 'How long can you hold your breath?'
item.setTitle('How long can you hold your breath?');

// Sets the question as required.
item.setRequired(true);

返回

DurationItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addEditor(emailAddress)

将指定用户添加到 Form 的编辑者列表中。如果用户已经 ,则此方法会将该用户从查看者列表中进行升级。

参数

名称类型说明
emailAddressString要添加的用户的电子邮件地址。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addEditor(user)

将指定用户添加到 Form 的编辑者列表中。如果用户已经 ,则此方法会将该用户从查看者列表中进行升级。

参数

名称类型说明
userUser表示要添加的用户。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addEditors(emailAddresses)

Form 的编辑器列表添加给定的一组用户。如果存在 用户已经存在于查看者列表中,则此方法会将他们从 观看者。

参数

名称类型说明
emailAddressesString[]要添加的用户的电子邮件地址的数组。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addGridItem()

附加一个新的问题项,以列和行网格的形式表示,允许 回答者从一系列单选按钮中每行选择一个选项。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a multiple choice grid.
const item = form.addGridItem();

// Sets the title to 'Rate your interests.'
item.setTitle('Rate your interests');

// Sets the grid's rows and columns.
item.setRows(['Cars', 'Computers', 'Celebrities'])
  .setColumns(['Boring', 'So-so', 'Interesting']);

返回

GridItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addImageItem()

附加可显示图片的新布局项。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds an image item.
const item = form.addImageItem();

// Gets the Google icon to use as the image.
const img = UrlFetchApp.fetch('https://fonts.gstatic.com/s/i/productlogos/googleg/v6/web-24dp/logo_googleg_color_1x_web_24dp.png');

// Sets the image, title, and description for the item.
item.setTitle('Google icon').setHelpText('Google icon').setImage(img);

返回

ImageItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addListItem()

附加一个新的问题项,以便回复者从下拉列表中选择一个选项 列表。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a dropdown list to the form.
const item = form.addListItem();

// Sets the title to 'Do you prefer cats or dogs?'
item.setTitle('Do you prefer cats or dogs?');

// Sets the description to 'This is description text...'
item.setHelpText('This is description text...');

// Creates and adds choices to the dropdown list.
item.setChoices([
  item.createChoice('dog'),
  item.createChoice('cat')
]);

返回

ListItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addMultipleChoiceItem()

添加新的问题项,以便回复者从单选选项列表中选择一个选项 或可选的“其他”字段。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a multiple choice item to the form.
const item = form.addMultipleChoiceItem();

// Sets the title.
item.setTitle('What is your favorite ice cream flavor?');

// Creates some choice items.
const vanilla = item.createChoice('vanilla');
const chocolate = item.createChoice('chocolate');
const strawberry = item.createChoice('strawberry');

// Sets the choices.
item.setChoices([vanilla, chocolate, strawberry]);

返回

MultipleChoiceItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addPageBreakItem()

添加用于标记页面起始位置的新布局项。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds page break items to create a second and third page for the form.
const pageTwo = form.addPageBreakItem();
const pageThree = form.addPageBreakItem();

// Sets the titles for the pages.
pageTwo.setTitle('Page two');
pageThree.setTitle('Page three');

// Upon completion of the first page, sets the form to navigate to the third page.
pageTwo.setGoToPage(pageThree);

// Upon completion of the second page, sets the form to navigate back to the first page.
pageThree.setGoToPage(FormApp.PageNavigationType.RESTART);

返回

PageBreakItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addParagraphTextItem()

添加允许回复者输入一段文本的新问题项。

// Opens the form by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds the paragraph text item.
const item = form.addParagraphTextItem();

// Sets the title to 'What is your address?'
item.setTitle('What is your address?');

返回

ParagraphTextItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addScaleItem()

附加一个新的问题项,可让回复者从编号中进行选择 单选按钮。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds the scale item.
const item = form.addScaleItem();

// Sets the title of the scale item to 'Choose a number.'
item.setTitle('Choose a number');

// Sets the scale to 1-5.
item.setBounds(1, 5);

// Sets the label for the lower and upper bounds.
item.setLabels('Lowest', 'Highest');

返回

ScaleItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addSectionHeaderItem()

附加一个新的布局项,用于直观地指示某个部分的开头。

 // Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds the section heading item.
const item = form.addSectionHeaderItem();

// Sets the title to 'Title of new section.'
item.setTitle('Title of new section');

// Sets the description.
item.setHelpText('Description of new section');

返回

SectionHeaderItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addTextItem()

附加一个新问题项,允许回复者输入一行文字。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a single-line text item.
const item = form.addTextItem();

// Sets the title to 'What is your name?'
item.setTitle('What is your name?');

返回

TextItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addTimeItem()

附加一个新的问题项,可让回复者指定一天中的时间。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a question with a time input.
const item = form.addTimeItem();

// Sets the title to 'What time do you usually wake up in the morning?'
item.setTitle('What time do you usually wake up in the morning?');

返回

TimeItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

addVideoItem()

附加用于显示视频的新布局项。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Adds a video item.
const item = form.addVideoItem();

// Sets the title, description, and video.
item.setTitle('YouTube video')
  .setHelpText('Send content automatically via Google Sheets and Apps Script')
  .setVideoUrl('https://youtu.be/xxgQr-jSu9o');

// Sets the alignment to the center.
item.setAlignment(FormApp.Alignment.CENTER);

返回

VideoItem - 新创建的项。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

canEditResponse()

确定表单是否在提交回复后显示用于编辑回复的链接。

无论此设置如何,FormResponse.getEditResponseUrl() 方法都允许 有权编辑表单的脚本作者,以生成可用于编辑 响应。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Checks if the form displays a link to edit a response after submitting it.
// The default is false. To let people edit their responses, use
// form.setAllowResponseEdits(true).
const edit = form.canEditResponse();

// If the form doesn't let people edit responses, logs false to the console.
console.log(edit);

返回

Boolean - 如果表单显示“修改回复”,则为 true链接;如果是,则为 false 则不可以。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

collectsEmail()

确定表单是否收集受访者的电子邮件地址。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to not collect respondents' email addresses.
form.setCollectEmail(false);

// Checks whether the form collects respondents' email addresses and logs it to the console.
const bool = form.collectsEmail();

console.log(bool);

返回

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()

从表单的回复存储区中删除所有已提交的回复。此方法不会删除 存储在外部回复目标(例如电子表格)中的回复的副本, 清除表单的摘要视图

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

deleteItem(index)

删除表单所有项中给定索引处的项。抛出脚本异常 如果指定索引中不存在任何项,则会发生此错误。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets all the items from the form.
const items = form.getItems();

// Finds the index of a paragraph text item and deletes it by the item's index.
const index = items.findIndex(item => item.getType() === FormApp.ItemType.PARAGRAPH_TEXT);
if (index !== -1) {
  form.deleteItem(index);
}

参数

名称类型说明
indexInteger相应项在表单中所有项中的索引。

抛出

Error - 如果指定索引中不存在项

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

deleteItem(item)

删除给定项。如果项已被删除,则会抛出脚本异常。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets all of the items from the form.
const items = form.getItems();

// Finds a paragraph text item and deletes it.
const item = items.find(item => item.getType() === FormApp.ItemType.PARAGRAPH_TEXT);
if (item) {
  form.deleteItem(item);
}

参数

名称类型说明
itemItem要删除的项。

抛出

Error - 如果表单中不存在相应项

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

deleteResponse(responseId)

从表单的响应存储区中删除单个响应。此方法不会删除 将回复存储在外部回复目标(如电子表格)中,但是将回复 回复。可以使用 FormResponse.getId() 检索响应 ID。

<ph type="x-smartling-placeholder">

参数

名称类型说明
responseIdString要删除的表单回复的 ID。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getConfirmationMessage()

获取表单的确认消息。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the confirmation message to display after someone submits the form.
form.setConfirmationMessage('You successfully submitted the form.');

// Gets the confirmation message and logs it to the console.
const message = form.getConfirmationMessage();

console.log(message);

返回

String - 表单的确认消息。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getCustomClosedFormMessage()

获取表单不接受回复时显示的自定义消息,消息内容为空 字符串。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets a custom closed form message to display to the user when the form
// no longer accepts responses.
form.setCustomClosedFormMessage('The form is no longer accepting responses.');

// Gets the custom message set for the form and logs it to the console.
const message = form.getCustomClosedFormMessage();

console.log(message);

返回

String - 表单不接受回复时显示的自定义消息;如果表单为空, 字符串。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getDescription()

获取表单的说明。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form description.
form.setDescription('This is the form description.');

// Gets the form description and logs it to the console.
const description = form.getDescription();

console.log(description);

返回

String - 表单的说明。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getDestinationId()

获取表单响应目的地的 ID。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Creates a spreadsheet to use as the response destination.
const ss = SpreadsheetApp.create('Test_Spreadsheet');

// Updates the form's response destination.
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

// Gets the ID of the form's response destination and logs it to the console.
const destinationId = form.getDestinationId();

console.log(destinationId);

返回

String - 表单的响应目的地的 ID。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getDestinationType()

获取表单回复目的地的类型。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc1234556/edit');

// Gets the type of the form's response destination and logs it to the console.
const destinationType = form.getDestinationType().name();

console.log(destinationType);

返回

DestinationType - 表单的回复目的地类型。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getEditUrl()

获取可用于访问表单编辑模式的网址。

// Opens the form by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the URL that accesses the form's edit mode and logs it to the console.
const url = form.getEditUrl();

console.log(url);

返回

String - 用于编辑表单的网址。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getEditors()

获取此 Form 的编辑器列表。

返回

User[] - 具有修改权限的用户数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getId()

获取表单的 ID。

// Opens the form by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the ID of the form and logs it to the console.
const id = form.getId();

console.log(id);

返回

String - 表单的 ID。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemById(id)

获取具有指定 ID 的项。如果 ID 与 中的项不对应,则返回 null 表单。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the ID of the first item on the form.
const itemId = form.getItems()[0].getId();

// Gets the item from the ID.
const item = form.getItemById(itemId);

// Gets the name of the item type and logs it to the console.
const type = item.getType().name();

console.log(type);

参数

名称类型说明
idInteger商品的 ID。

返回

Item - 具有指定 ID 的项,如果表单中不存在相应项,则返回 null

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItems()

获取表单中所有项的数组。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the list of items in the form.
const items = form.getItems();

// Gets the type for each item and logs them to the console.
const types = items.map((item) => item.getType().name());

console.log(types);

返回

Item[] - 表单中所有项的数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItems(itemType)

获取给定类型的所有项的数组。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets a list of all checkbox items on the form.
const items = form.getItems(FormApp.ItemType.CHECKBOX);

// Gets the title of each checkbox item and logs them to the console.
const checkboxItemsTitle = items.map((item) => item.asCheckboxItem().getTitle());
console.log(checkboxItemsTitle);

参数

名称类型说明
itemTypeItemType要检索的项的类型。

返回

Item[] - 包含该类型的所有项的数组。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getPublishedUrl()

获取可用于回复表单的网址。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the URL to respond to the form and logs it to the console.
const url = form.getPublishedUrl();
console.log(url);

返回

String - 用于回复表单的网址。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponse(responseId)

根据回复 ID 获取单个表单回复。可以从 FormResponse.getId() 中检索响应 ID。

参数

名称类型说明
responseIdString表单回复的 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)

获取给定日期和时间之后的所有表单回复的数组。

参数

名称类型说明
timestampDate应返回表单回复的最早日期和时间。

返回

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,否则就只有对 表单能否访问该网址。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// Opens the form by its URL.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the URL to view a summary of the form's responses and logs it to the console.
const url = form.getSummaryUrl();
console.log(url);

返回

String - 用于查看回复摘要的网址。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getTitle()

获取表单的标题。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the title of the form to 'For_Testing.'
form.setTitle('For_Testing');

// Gets the title of the form and logs it to the console.
const title = form.getTitle();
console.log(title);

返回

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()

确定表单是否显示进度条。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// Opens the form by its URL.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Displays the progress bar on the form.
form.setProgressBar(true);

// Checks if the form displays a progress bar and logs it to the console.
console.log(form.hasProgressBar());

返回

Boolean - 如果表单显示进度条,则为 true;如果没有,则为 false

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

确定表单是否在回复者之后显示用于提交另一回复的链接 填写表单。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to display a link to submit another
// response after someone submits the form.
form.setShowLinkToRespondAgain(true);

// Checks if the form displays a 'Submit another response' link and logs it to the console.
console.log(form.hasRespondAgainLink());

返回

Boolean - 如果表单显示“另填写一份回复”,则为 true链接;如果是,则为 false 则不可以。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

isAcceptingResponses()

确定表单目前是否接受回复。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to accept responses.
form.setAcceptingResponses(true);

// Checks if the form is accepting responses or not and logs it to the console.
const accepting = form.isAcceptingResponses();
console.log(accepting);

返回

Boolean - true(如果表单接受回复);false

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

isPublishingSummary()

确定表单是否在回复者之后显示用于查看回复摘要的链接 填写表单。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to display a link to a summary of
// the responses after someone submits the form.
form.setPublishingSummary(true);

// Checks if the form displays a "See previous responses" link and logs it to the console.
const publishingLink = form.isPublishingSummary();
console.log(publishingLink);

返回

Boolean - 如果表单显示“查看以前的回复”,则为 true链接;如果是,则为 false 则不可以。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

isQuiz()

确定表单是否为测验。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form as a quiz.
form.setIsQuiz(true);

// Checks if the form is a quiz or not and logs it to the console.
console.log(form.isQuiz());

返回

Boolean - true(如果表单接受回复);false

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

moveItem(from, to)

将表单中的所有项中位于指定索引处的项移动到另一个指定索引。抛出 脚本异常。to

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Moves the first item to be the last item.
form.moveItem(0, form.getItems().length - 1);

参数

名称类型说明
fromInteger表单中所有项的当前索引。
toInteger表单中所有项的新索引。

返回

Item - 已移动的内容。

抛出

Error - 如果任一索引超出边界。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

moveItem(item, toIndex)

将给定项移到表单中的所有项之间的指定索引。抛出脚本 会引发异常。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Gets the first item.
const item = form.getItems()[0];

// Moves the item to be the last item.
form.moveItem(item, form.getItems().length - 1);

参数

名称类型说明
itemItem要移动的内容。
toIndexInteger表单中所有项的新索引。

返回

Item - 已移动的内容。

抛出

Error - 如果索引超出范围。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

removeDestination()

取消表单与其当前回复目标位置的关联。解除关联的前目的地仍然 会保留之前所有回复的副本。所有表单,包括不具有 则保存 表单回复存储区中的回复副本。如果表单目前没有 则此方法无效。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Opens a spreadsheet to use for the response destination.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Updates the form's response destination to the spreadsheet.
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

// Unlinks the form from the spreadsheet.
form.removeDestination();

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

removeEditor(emailAddress)

Form 的编辑者列表中移除指定用户。此方法 如果用户属于符合以下条件的某个类别,则禁止该用户访问Form 例如,如果 Form 与用户的整个 网域,或者如果 Form 位于用户有权访问的共享云端硬盘中。

对于云端硬盘文件,此操作还会将相应用户从查看者列表中移除。

参数

名称类型说明
emailAddressString要移除的用户的电子邮件地址。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

removeEditor(user)

Form 的编辑者列表中移除指定用户。此方法 如果用户属于符合以下条件的某个类别,则禁止该用户访问Form 例如,如果 Form 与用户的整个 网域,或者如果 Form 位于用户有权访问的共享云端硬盘中。

对于云端硬盘文件,此操作还会将相应用户从查看者列表中移除。

参数

名称类型说明
userUser要移除的用户的表示法。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

requiresLogin()

确定表单是要求回复者登录同一网域中的账号,还是 子网域,然后再做出响应。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Checks if the form requires respondents to log in to a Google Workspace account
// before responding and logs it to the console.
const login = form.requiresLogin();
console.log(login);

返回

Boolean - 如果表单要求用户登录,则为 true;如果没有,则为 false


setAcceptingResponses(enabled)

设置表单目前是否接受回复。新表单的默认值为 true

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to accept responses.
form.setAcceptingResponses(true);

// Checks whether the form is accepting responses or not and logs it to the console.
console.log(form.isAcceptingResponses());

参数

名称类型说明
enabledBoolean如果表单应接受回复,则为 truefalse

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setAllowResponseEdits(enabled)

设置表单是否在提交回复后显示用于编辑回复的链接。默认 新表单为 false

无论此设置如何,FormResponse.getEditResponseUrl() 方法都允许 有权修改表单的脚本作者,可生成可用于修改 响应。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Shows "Edit your response" link after someone submits the form.
form.setAllowResponseEdits(true);

// Checks whether the option to edit the form after a user submits it is set to true or not
// and logs it to the console.
console.log(form.canEditResponse());

参数

名称类型说明
enabledBoolean如果表单应显示“编辑回复”,则为 true链接;如果不是,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setCollectEmail(collect)

设置表单是否收集回复者的电子邮件地址。新表单的默认设置是 false

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to collect respondents' email addresses.
form.setCollectEmail(true);

// Checks whether the value is set to true or false and logs it to the console.
const collect = form.collectsEmail();
console.log(collect);

参数

名称类型说明
collectBoolean如果表单应收集电子邮件地址,则为 true;如果为 false 则不可以。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setConfirmationMessage(message)

设置表单的确认消息。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets a custom confirmation message to display after someone submits the form.
form.setConfirmationMessage('Your form has been successfully submitted.');

// Gets the confirmation message set for the form and logs it to the console.
const message = form.getConfirmationMessage();
console.log(message);

参数

名称类型说明
messageString表单的新确认消息。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setCustomClosedFormMessage(message)

设置表单不接受回复时显示的消息。如果未设置任何消息, 表单使用默认消息。

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form to not accept responses.
form.setAcceptingResponses(false);

// Sets a custom closed form message to display to the user.
form.setCustomClosedFormMessage('The form is no longer accepting responses.');

// Gets the custom message set for the form and logs it to the console.
const message = form.getCustomClosedFormMessage();
console.log(message);

参数

名称类型说明
messageString当表单不接受回复时显示的消息。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setDescription(description)

设置表单的说明。

参数

名称类型说明
descriptionString表单的新说明。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setDestination(type, id)

设置保存表单回复的目标位置。所有表单,包括 明确设置目标,请在表单的 响应存储区

参数

名称类型说明
typeDestinationType表单的响应目标的类型。
idString表单的响应目的地的 ID。

返回

Form - 此 Form,用于链接。

抛出

Error - 如果给定的目标平台 ID 无效

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setIsQuiz(enabled)

设置表单是否为测验。新表单的默认值为 false

已评分的题目只能在测验中使用,因此将此选项设置为 false 会导致所有作业 会从所有题目中移除评分选项。

测验设置仅适用于新版表单界面;将表单设为测验 如何使用新界面

// Opens the Forms file by its URL. If you created your script from within a
// Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Makes the form a quiz.
form.setIsQuiz(true);

// Checks whether the form is a quiz or not and logs it to the console.
console.log(form.isQuiz());

参数

名称类型说明
enabledBoolean如果应为表单启用测验功能,请truefalse(如果 错误。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setLimitOneResponsePerUser(enabled)

设置表单是否允许每个回复者提交一次回复。新表单的默认设置是 false。如果该值设为 true,则脚本无法在 全部。

参数

名称类型说明
enabledBoolean如果表单仅允许每位受访者提出一条回复,则为 true;如果不是,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setProgressBar(enabled)

设置表单是否有进度条。新表单的默认值为 false

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Displays the progress bar on the form.
form.setProgressBar(true);

// Checks whether the form has a progress bar and logs it to the console.
console.log(form.hasProgressBar());

参数

名称类型说明
enabledBoolean如果表单显示进度条,则为 true;如果没有,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setPublishingSummary(enabled)

设置表单是否在回复者提交后显示用于查看回复摘要的链接 表单。新表单的默认值为 false

参数

名称类型说明
enabledBoolean如果表单应该显示“查看以前的回复”,则为 true链接;如果不是,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setRequireLogin(requireLogin)

设置表单是否需要回复者登录同一网域或 子网域,然后再做出响应。新表单默认为 false,除非网域 系统会更改默认设置

此功能仅适用于 Google Workspace 用户创建的表单。其他用户 也不要求登录特定类型的 Google 账号。

// Opens the Forms file by its URL. If you created your script from within
// a Google Forms file, you can use FormApp.getActiveForm() instead.
// TODO(developer): Replace the URL with your own.
const form = FormApp.openByUrl('https://docs.google.com/forms/d/abc123456/edit');

// Sets the form so that users must log in to their Google Workspace account.
form.setRequireLogin(true);

// Checks whether the form requires login or not and logs it to the console.
console.log(form.requiresLogin());

参数

名称类型说明
requireLoginBoolean如果表单要求用户登录,则为 true;如果为 false 则不可以。

返回

Form - 当前形式(用于链接)。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setShowLinkToRespondAgain(enabled)

设置表单是否在回复者填写完毕后显示用于提交其他回复的链接 表单。新表单的默认值为 true

参数

名称类型说明
enabledBoolean如果表单应显示“再提交一份回复”,则为 true链接;如果不是,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setShuffleQuestions(shuffle)

设置表单每个页面上的问题顺序是否为随机。

参数

名称类型说明
shuffleBooleantrue如果表单每一页上的问题的顺序应该是 随机;如果不是,则为 false

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

setTitle(title)

设置表单的标题。

参数

名称类型说明
titleString表单的新标题。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

shortenFormUrl(url)

将表单的长网址转换为短网址。如果长网址不存在,则会抛出异常 属于 Google 表单。

参数

名称类型说明
urlString要缩短的网址。

返回

String - 格式为 http://goo.gl/forms/1234 的网址。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

submitGrades(responses)

提交指定 FormResponse 的成绩。

如果您的代码包含 onFormSubmit 触发器,则调用 submitGrades() 会触发 onFormSubmit 条件,导致无限循环。为了防止 无限循环,请添加用于在调用 submitGrades() 之前检查成绩是否已存在的代码。

参数

名称类型说明
responsesFormResponse[]表单的所有回复的数组。

返回

Form - 此 Form,用于链接。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms