Google apps script 如何从多个电子表格中检测编辑
我有以下功能,用于在对特定电子表格进行编辑时,将更改记录到更改日志中 与监视单个电子表格的更改不同,我希望监视多个电子表格(作为数组)的更改。如何修改代码为多个电子表格创建触发器Google apps script 如何从多个电子表格中检测编辑,google-apps-script,Google Apps Script,我有以下功能,用于在对特定电子表格进行编辑时,将更改记录到更改日志中 与监视单个电子表格的更改不同,我希望监视多个电子表格(作为数组)的更改。如何修改代码为多个电子表格创建触发器 var model1Id='xxx'; var changelogId='yyy'; //创建OneEdit触发器。 函数createOnEditTrigger(){ ScriptApp.newTrigger('catchEdits')) .适用于前页(型号1ID) .onEdit() .create(); } //
var model1Id='xxx';
var changelogId='yyy';
//创建OneEdit触发器。
函数createOnEditTrigger(){
ScriptApp.newTrigger('catchEdits'))
.适用于前页(型号1ID)
.onEdit()
.create();
}
//从onEdit事件获取值,并将此数据推送到changelog电子表格
功能编辑(e){
var spreadId=e.source.getId();
var spreadName=e.SpreadsheetApp.getActiveSpreadsheet().getName();
var sheet=e.source.getActiveSheet();
var sheetName=sheet.getName();
var cellAddress=e.range.geta1表示法();
var oldValue=e.oldValue;
var值=e.value;
var user=e.user;
变量日期=新日期();
appendRow([spreadId,spreadName,sheetName,cellAddress,oldValue,value,user,date]);
}
问题:
如何修改代码为多个电子表格创建触发器
答复:
若您有一个数组,其中包含要监视的不同电子表格的id
,那个么您可以循环遍历该数组,并为每个对应的电子表格创建一个触发器
代码示例:
注:
- 请注意,每个脚本中每个用户最多有20个触发器,因此您不能使用单个脚本跟踪超过20个电子表格(请参阅)
没有属性e
,并且SpreadsheetApp
引用当前电子表格,因此我建议您更改e.source
tovar spreadsheetname=e.SpreadsheetApp.getActiveSpreadsheet().getName()
var spreadName=e.source.getName()代码>(请参阅)
function createOnEditTrigger(){
const spreadsheetIds = ["spreadsheetId_1", "spreadsheetId_2", ...];
spreadsheetIds.forEach(spreadsheetId => {
const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
ScriptApp.newTrigger('catchEdits')
.forSpreadsheet(spreadsheet)
.onEdit()
.create();
});
}