我设置了Google Apps脚本触发器来检查表单提交。但是,我想检查传入的事件值,并确定事件是否应实际添加到电子表格中或忽略。
现在我正在执行类似下面的操作,删除添加后的最后一行。
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
if (e.values[2] < whatever) {
sheet.deleteRow(sheet.getLastRow());
}
然而,这种方法有时会失败,我假设是因为并发事件。
有更好的方法吗?
答案 0 :(得分:3)
您需要多快删除行?是否可以使用时间驱动的触发器定期清理纸张?
或者,使用表单提交触发器,您可以使用e.range清除(而不是删除)行,然后使用时间驱动的触发器清除空白行。
或者,使用表单提交触发器,您可以选择不触摸原始数据提交,但使用另一个工作表(或电子表格)使用appendRow()
记录接受的e.values,它会自动附加,绕过并发问题。
或者,您可以通过在另一张表中使用FILTER或QUERY公式来实现相同目标,但这可能会对性能产生最大的影响。
答案 1 :(得分:1)
如果因并发事件而失败,请查看Lock service。