[在Google表格中有一个表格,我通过API从网站联系表单中获取数据。我需要在单独的列中为每个提交(表的行)添加数据。我尝试了功能onEdit,但它仅适用于手动更改,并且如果通过API进行销售则不起作用。我应该改变什么?
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();
if (idCol == 1 && sheet.getName() == "Лист1") {
var Value = e.range.offset(0, +2).getValues(); // Смотрим что в ячейке с лева на 2
if (Value == "") {
var vartoday = getDate();
var varnow = getTime();
sheet.getRange(idRow, 3).setValue(vartoday);
sheet.getRange(idRow, 4).setValue(varnow);
}
}
}
// Returns YYYYMMDD-formatted date.
function getDate() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, "GMT+03:00", "yyyy.MM.dd");
}
function getTime() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, "GMT+03:00", "HH:mm");
}
如果用onEdit(e)修改了单元格,我可以像Sheets API一样运行触发器吗?
否,因为脚本执行和API请求不导致触发器运行,请查看Restrictions
脚本执行和API请求不会导致触发器运行。例如,调用FormResponse.submit()提交新的表单响应不会导致表单的Submit触发器运行。