我希望从Google表单收集数据的工作表能够删除旧数据。我在工作表中有这个脚本,但是当通过表单添加新数据时,它似乎无法运行。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("1054");
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array
var currentDate = new Date();
var oneweekago = new Date();
oneweekago.setDate(currentDate.getDate() - 7);
for (i=lastrow;i>=2;i--) {
var tempdate = values[i-1][0];
if(tempdate < oneweekago)
{
sheet.deleteRow(i);
}
它链接到的表单称为1054。
我是否需要在表格中添加appscript?如果是这样,会是什么?
答案 0 :(得分:2)
我认为将纸张和单独贴在一起的表单放在一起会更好。这是我在我网站上的表格上所做的事情。
function formSubmitEvent(e)
{
var ss=SpreadsheetApp.openById('SpreadsheetID');
var sht=ss.getSheetByName('ResponseReview');//this is another sheet I used for reviewing the responses.
sht.appendRow(e.values);//I append a row to the ResponseReview sheet
selfEmail(e.values);//and I send myself an email if my quota is above 75
}
即使你删除链接表上的旧数据,表单也会继续在中断的位置添加数据,因为它显然会跟踪下一行的内容。
一般情况下,我单独留下链接表。确实,我在Googgle Apps Script中构建了我的表单,所以在某些时候,当我得到很多回复时,我将取消链接表单并删除它们并通过运行该脚本重新构建表单,并且将链接一个新的表单和表单但是我将继续审核其他工作表中的审核流程,该工作表还可以根据提交的数据创建Google文档。从本质上讲,表单想要放置数据对我来说并不重要,因为我捕获了onFormSubmit触发器并从values数组中放入了我的ResponseReview表。我可以用那张纸做任何我想做的事而不影响联系。