Google 表单提交事件:在何处放置事件处理程序(Sheet 触发器与表单触发器)以将 EditResponseUrl 保存在行中
Google Form Submit Event: Where to place the Event Handler (Sheet trigger vs Form trigger) to save EditResponseUrl in the row
您能否解释一下如何使用以及使用哪个触发器(将我的脚本放置在何处)- 表单中的表单提交事件,或(响应)电子表格中的表单提交事件。
我想使用什么(这在表单脚本中可用):
var timestamp = event.response.getTimestamp();
var responseUniqueId = event.response.getId();
//The same:
//var responseURL = formResponse.getEditResponseUrl();
//var responseUniqueId = responseURL.split('edit2=').pop();
这在电子表格脚本中可用:
event.range.getRow()
我想要一行并在其中添加 responseUniqueId。
我建议将它添加到电子表格中,除了我通常在其中添加脚本外,没有其他原因。以下代码将表单响应 ID 添加到每个提交的表单中:
function getResponseId() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('yourSheetName');
var formUrl = sheet.getFormUrl();
// Open the form to access the responses
var responses = FormApp.openByUrl(formUrl).getResponses();
// add the last form response ID to the last row in the sheet
sheet.getRange(sheet.getLastRow(), 3).setValue(responses[responses.length - 1].getId());
}
除此代码外,您还需要通过脚本编辑器中的 GUI 添加 On Form Submit
触发器。
您能否解释一下如何使用以及使用哪个触发器(将我的脚本放置在何处)- 表单中的表单提交事件,或(响应)电子表格中的表单提交事件。 我想使用什么(这在表单脚本中可用):
var timestamp = event.response.getTimestamp();
var responseUniqueId = event.response.getId();
//The same:
//var responseURL = formResponse.getEditResponseUrl();
//var responseUniqueId = responseURL.split('edit2=').pop();
这在电子表格脚本中可用:
event.range.getRow()
我想要一行并在其中添加 responseUniqueId。
我建议将它添加到电子表格中,除了我通常在其中添加脚本外,没有其他原因。以下代码将表单响应 ID 添加到每个提交的表单中:
function getResponseId() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('yourSheetName');
var formUrl = sheet.getFormUrl();
// Open the form to access the responses
var responses = FormApp.openByUrl(formUrl).getResponses();
// add the last form response ID to the last row in the sheet
sheet.getRange(sheet.getLastRow(), 3).setValue(responses[responses.length - 1].getId());
}
除此代码外,您还需要通过脚本编辑器中的 GUI 添加 On Form Submit
触发器。