Google脚本记录仪未显示事件数据中的哪些表编辑



我正在尝试检测安装的onEdit函数中编辑的表格。

记录器正确记录了要编辑的单元格的数据,但是没有告诉我对此编辑进行了哪些表。我需要专门以ID编辑表格以完成我正在构建的函数。

记录器:

[19-08-01 08:37:27:714 CDT] {"authMode":{},"range":{"columnStart":4,"rowStart":4,"rowEnd":4,"columnEnd":4},"source":{},"oldValue":"2.0","triggerUid":"1111111","user":{"nickname":"Mike-SMT","email":"Mike-SMT@random.com"},"value":"222"}

用于记录事件的代码:

function raw_data_edited(e) {
  Logger.log(JSON.stringify(e));
}

我在上面的日志中看不到指示特定表的任何内容。

有没有事件的ID表的方法?

这很奇怪, source在记录事件对象时似乎总是显示为空,但仍然可以使用。

我不确定您是指电子表格 id还是 id id,所以这是使用事件对象获得两者的方法:

//get spreadsheet id using "source" object
e.source.getId();
//get spreadsheet id using "range" object
e.range.getSheet().getParent().getId();
//get individual sheet id using "source" object
e.source.getActiveSheet().getSheetId();
//get individual sheet id using "range" object
e.range.getSheet().getSheetId();

参考:

  • 事件对象
  • getId()
  • getSheetId()

e.range将为您提供编辑的范围。

从那里您可以使用getSheet()获取此范围属于的表格。

然后从表格中使用getSheetId()获取表格

的ID
function raw_data_edited(e) {
  Logger.log(JSON.stringify(e));
  var ssID = e.range.getSheet().getSheetId().toString();
  Logger.log(ssID);
}

最新更新