0

我有一个表格,链接到电子表格。在这个电子表格上,我有一个处理表单答案的脚本。该脚本必须向回答表单的用户生成一封邮件,并且有时要求他修改他的答案。我想生成一个预先填写的表格链接(预先填写用户的答案),通过邮件发送,所以让他只更改我希望他更改的内容(不必再次填写所有表格)

我看到有一种方法可以使用该功能

  getEditResponseUrl()
    --> var 'responses' = 'myform'.getResponses();
    --> var 'modificationUrl' = 'responses'[?].getEditResponseUrl()

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

请问,有什么方法可以知道使用哪个响应来执行 getEditResponse(以时间为例..;但我不知道如何)

先感谢您。

4

1 回答 1

0

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

您可以查看这张 以了解更多如何处理表单答案。如果您需要有关在表单提交时触发表单响应时如何操作表单响应的特定信息(您会这样做),您可以查看此问题

例子:

// 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);
}
于 2014-01-30T09:19:01.263 回答