[英]Delete Google Form submission based on date
我正在尝试从 Google forms 中删除超过设定年龄的响应。 我有一个脚本可以为工作表执行此操作,但这不会从表单中删除响应。 从表单中删除所有回复不是一种选择,因为我需要保留不超过设定年龄的回复。 这是在工作表上工作的脚本,我需要在表单上使用它。
function DeleteOldEntries() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//give your sheet name below instead of Sheet1
var sheet = ss.getSheetByName("Sheet 1");
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var currentDate = new Date();
var oneweekago = new Date();
oneweekago.setDate(currentDate.getDate() - 1095);
for (i=lastrow;i>=2;i--) {
var tempdate = sheet.getRange(i, 1).getValue();
if(tempdate < oneweekago)
{
sheet.deleteRow(i);
}
}
}
您需要编写一个脚本来删除表单中的响应,就像您为电子表格编写的一样。 请参阅此链接以按 ID 删除表单单一响应
我创建了一个Form
,并设法删除了一周前的提交。 您必须使用几种方法来实现该目标:
Form
。 如果您正在使用包含在Form
文档中的 Apps 脚本项目,则可以使用getActiveForm 。 否则,使用openById或openByUrltimestamp
function deleteSubmissions(){
var oneweekago = new Date();
oneweekago.setDate(oneweekago.getDate() - 1095);
var form = FormApp.getActiveForm() // FormApp.openById() | FormApp.openByUrl()
var responses = form.getResponses()
for (var i=0; i<responses.length; i++){
var r = responses[i]
var responseTime = r.getTimestamp()
if (responseTime > oneweekago){
var id = r.getId()
form.deleteResponse(id)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.