Google 脚本记录器未显示 sheet 对事件数据进行的编辑
Google Script logger not showing what sheet edit was made on from event data
我正在尝试检测 sheet 在已安装的 onEdit
功能中进行了哪些编辑。
记录器正确地记录了正在编辑的单元格的数据,但是没有告诉我 sheet 这个编辑是在什么地方进行的。我需要特别指出 sheet 编辑发生在什么地方以完成我正在构建的功能。
记录器:
[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));
}
我在上面的日志中没有看到任何指示特定 sheet。
有没有办法从事件中获取 ID sheet?
e.range
将为您提供已编辑的范围。
从那里您可以使用此范围所属的 getSheet()
到 get the sheet。
然后从sheet,用getSheetId()
到get the ID的sheet
function raw_data_edited(e) {
Logger.log(JSON.stringify(e));
var ssID = e.range.getSheet().getSheetId().toString();
Logger.log(ssID);
}
奇怪,source
记录事件对象的时候好像总是显示为空,但还是可以用的
我不确定你是指 spreadsheet ID 还是 sheet 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();
参考文献:
我正在尝试检测 sheet 在已安装的 onEdit
功能中进行了哪些编辑。
记录器正确地记录了正在编辑的单元格的数据,但是没有告诉我 sheet 这个编辑是在什么地方进行的。我需要特别指出 sheet 编辑发生在什么地方以完成我正在构建的功能。
记录器:
[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));
}
我在上面的日志中没有看到任何指示特定 sheet。
有没有办法从事件中获取 ID sheet?
e.range
将为您提供已编辑的范围。
从那里您可以使用此范围所属的 getSheet()
到 get the sheet。
然后从sheet,用getSheetId()
到get the ID的sheet
function raw_data_edited(e) {
Logger.log(JSON.stringify(e));
var ssID = e.range.getSheet().getSheetId().toString();
Logger.log(ssID);
}
奇怪,source
记录事件对象的时候好像总是显示为空,但还是可以用的
我不确定你是指 spreadsheet ID 还是 sheet 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();