我有一个表单,链接到电子表格。在这个电子表格中,我有一个处理表单答案的脚本。 脚本必须向回答表单的用户生成邮件,有时会要求他修改他的答案。 我想生成一个预填表格链接(预先填写用户的答案),通过邮件发送,所以让他只改变我想要他改变的东西(不必再填写所有表格)
我看到有一种方法可以使用函数
来做到这一点 getEditResponseUrl()
--> var 'responses' = 'myform'.getResponses();
--> var 'modificationUrl' = 'responses'[?].getEditResponseUrl()
我不知道哪些回复'要采取的形式。 (因为我的电子表格中的行数少于表单响应的数量......
请问,有没有办法知道用于执行getEditResponse的响应(使用时间作为示例...;但我不知道如何)
提前谢谢你。
答案 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);
}