在 Google Apps 脚本中循环重置函数
Looping a reset function in Google Apps Script
我正在尝试循环重置功能,以便我可以将其应用于同一个电子表格中的 30 多个不同的工作表。
我以前找到过答案,但我无法修改它以使其正常工作。
function reset() {
var keys = ['my spreadsheet id']; // list of spreadsheet ids
for (var i = 0; i < keys.length; i++) {
var ss = SpreadsheetApp.openById(keys[i]);
var sheet = ss.getSheetByName('sheet name'); // i tried writing multiple sheet names here already but it doesn't work, hence trying to make the loop
sheet.getRange('C3').setValue('X');
}
}
这里已经提到了我正在谈论的循环:
我不需要得到所有的床单。应排除 2 张床单。
我需要帮助将其应用到我上面发布的功能。
解决方案:
您可以使用 getSheets()
获取电子表格中的所有工作表,并使用 filter()
排除定义的工作表:
function reset() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var exclude = ['Sheet1','Sheet2'];
sheets.filter(s => exclude.indexOf(s.getName()) == -1).forEach(s => s.getRange('C3').setValue('Z'));
}
参考:
创建要排除的工作表数组,并确保它们在设置值时不是included:
function reset() {
const key = 'my spreadsheet id';
const sheetsToExclude = ["Sheet2","testSheet"]; // add the sheet names you want to exclude
const sheets = SpreadsheetApp.openById(key).getSheets();
sheets.forEach(sheet => {
if(!sheetsToExclude.includes(sheet.getName())){
sheet.getRange('C3').setValue('X')
}});
}
我正在尝试循环重置功能,以便我可以将其应用于同一个电子表格中的 30 多个不同的工作表。
我以前找到过答案,但我无法修改它以使其正常工作。
function reset() {
var keys = ['my spreadsheet id']; // list of spreadsheet ids
for (var i = 0; i < keys.length; i++) {
var ss = SpreadsheetApp.openById(keys[i]);
var sheet = ss.getSheetByName('sheet name'); // i tried writing multiple sheet names here already but it doesn't work, hence trying to make the loop
sheet.getRange('C3').setValue('X');
}
}
这里已经提到了我正在谈论的循环:
我不需要得到所有的床单。应排除 2 张床单。 我需要帮助将其应用到我上面发布的功能。
解决方案:
您可以使用 getSheets()
获取电子表格中的所有工作表,并使用 filter()
排除定义的工作表:
function reset() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var exclude = ['Sheet1','Sheet2'];
sheets.filter(s => exclude.indexOf(s.getName()) == -1).forEach(s => s.getRange('C3').setValue('Z'));
}
参考:
创建要排除的工作表数组,并确保它们在设置值时不是included:
function reset() {
const key = 'my spreadsheet id';
const sheetsToExclude = ["Sheet2","testSheet"]; // add the sheet names you want to exclude
const sheets = SpreadsheetApp.openById(key).getSheets();
sheets.forEach(sheet => {
if(!sheetsToExclude.includes(sheet.getName())){
sheet.getRange('C3').setValue('X')
}});
}