阻止Google Apps脚本中的传入事件

时间:2012-10-12 02:45:13

标签: google-apps-script

我设置了Google Apps脚本触发器来检查表单提交。但是,我想检查传入的事件值,并确定事件是否应实际添加到电子表格中或忽略。

现在我正在执行类似下面的操作,删除添加后的最后一行。

function onFormSubmit(e) {
    var sheet = SpreadsheetApp.getActiveSheet();
    if (e.values[2] < whatever) {
        sheet.deleteRow(sheet.getLastRow());
}

然而,这种方法有时会失败,我假设是因为并发事件。

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

您需要多快删除行?是否可以使用时间驱动的触发器定期清理纸张?

或者,使用表单提交触发器,您可以使用e.range清除(而不是删除)行,然后使用时间驱动的触发器清除空白行。

或者,使用表单提交触发器,您可以选择不触摸原始数据提交,但使用另一个工作表(或电子表格)使用appendRow()记录接受的e.values,它会自动附加,绕过并发问题。

或者,您可以通过在另一张表中使用FILTER或QUERY公式来实现相同目标,但这可能会对性能产生最大的影响。

答案 1 :(得分:1)

如果因并发事件而失败,请查看Lock service