Google Script for Forms:提交表单后立即编辑表单回复

时间:2016-04-15 03:28:56

标签: google-apps-script

假设我的Google表单只有一个项目:简短的答案项目。一旦我提交表单,我想要一个脚本,以便它更改响应。例如,无论用户输入什么问题,我都希望脚本将其更改为" foo"。表单回复Google表格也应该显示" foo"作为回应。

我知道它涉及ScriptApp.newTrigger("edit_response").forForm(form).onFormSubmit().create();之类的内容,其中form = FormApp.getActiveForm()edit_response是一个接受事件e的函数。但我似乎无法找到一种可以修改表单响应的方法......

1 个答案:

答案 0 :(得分:3)

Google表单内的表单回复可以使用Apps脚本进行 NOT 编辑。可以更改保存到电子表格的响应,但无法更改表单中的现有响应。可以使用代码删除表单响应,但不能使用任何Apps脚本方法进行编辑。

您可以手动设置“表单提交”触发器。除非您正在执行诸如使用代码创建新表单并自动分发它们之类的操作,否则无需从代码创建触发器。或者让人们在表单上安装附加组件。

表格回复总是写在表格中。将表单响应数据也写入电子表格是一种选择。在写入数据之前,您无法拦截数据。但是你可以在写完之后立即改变它。

用作On Form Submit触发器的函数可以接收带有Form数据的JavaScript对象。用于分配给对象的变量通常是“e”。但它可以是任何东西。

function myOnFormSubmitFunc(e) {};

表单提交触发器可以在表单,表单或两者中。工作表的“表单提交”对象与“表单”不同。例如,使用Sheet On Form Submit对象,您可以直接获取值数组。

var arrayOfValues = e.values;

Apps Script Documentation - Sheets Form Submit events

有一个FormResponse类:

Apps Script Documentation - FormResponse

但它无法在表单中编辑现有的表单响应。