电子表格上的Google脚本 - 创建链接以通过表单修改答案

时间:2014-01-29 14:53:06

标签: forms google-apps-script google-sheets modification-form

我有一个表单,链接到电子表格。在这个电子表格中,我有一个处理表单答案的脚本。 脚本必须向回答表单的用户生成邮件,有时会要求他修改他的答案。 我想生成一个预填表格链接(预先填写用户的答案),通过邮件发送,所以让他只改变我想要他改变的东西(不必再填写所有表格)

我看到有一种方法可以使用函数

来做到这一点
  getEditResponseUrl()
    --> var 'responses' = 'myform'.getResponses();
    --> var 'modificationUrl' = 'responses'[?].getEditResponseUrl()

我不知道哪些回复'要采取的形式。 (因为我的电子表格中的行数少于表单响应的数量......

请问,有没有办法知道用于执行getEditResponse的响应(使用时间作为示例...;但我不知道如何)

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

您可以将表单中的数据写入电子表格,而不是使用表单中的链接到电子表格。在表单给出的对象中,您将检索他的ID和他的ID,然后您就可以有效地将电子表格的条目链接到表单答案。

您可以查看此ticket 学习更多如何处理表单答案。如果您需要特定的信息(您将这样做),如果在表单提交时触发表单的响应,您可以查看issue

为例:

// for a form with 2 question named "question 1" and "question 2"
function submitFormFunc(e) {
  var items = e.response.getItemResponses();
  var responses={};
  for(var i = 0; i< items.length; i++) {
   responses[items[i].getItem().getTitle()]=items[i].getResponse();
  }

  var responseTable = [];
  var responseIndex = ["Timestamp","ID","question 1","question 2"];
  responseTable.push(e.response.getTimestamp().toString());
  responseTable.push(e.response.getId());
  responseTable.push(responses["question 1"]);
  responseTable.push(responses["question 2"]);
  responseTable.push(FormApp.getActiveForm().getResponse(e.response.getId()).getEditResponseUrl());
  SpreadsheetApp.openById("your spreadsheetId").appendRow(responseTable);
}