Вам просто необходимо получить листы Таблицы, и переименовать их как надо.
Решение
SpreadsheetApp.openById('blah-blah')
.getSheets()
.forEach(function(sheet) {
var name = sheet.getRange('J2').getValue();
if (name)
try {
sheet.setName(name);
} catch (error) {
console.error('CATCHED', error);
}
});
Как делают
Основная идея заключается в том, чтобы перебрать все элементы массива, отсортировать лишнее, а с выбранными элементаи произвести действие. Функция
userActionRenameSheets
демонстрирует это.
/* exported userActionRenameSheets */
/**
* Действие пользователя или триггера. Внешний вызов без параметров
*/
function userActionRenameSheets() {
var spreadsheet = SpreadsheetApp.openById('blah-blah');
/** @type {filterSheets} */
var filterSheets = function(sheet) {
return true;
};
/** @type {renameRule} */
var renameRule = function(sheet) {
var name = sheet.getRange('J2').getValue();
if (name)
try {
sheet.setName(name);
} catch (error) {
console.error('CATCHED', error);
}
return sheet;
};
var sheets = renameSheetsByCellValue_(spreadsheet, filterSheets, renameRule);
// Делать что-нибудь дальше
}
/**
* Переименовывает листы в Таблице согласно заданным правилам
*
* @param {GoogleAppsScript.Spreadsheet.Spreadsheet} spreadsheet Таблица,
* в которой производим переименование
* @param {filterSheets} Фильтр листов на всякий случай, вдруг что-то надо да пропустить
* @param {renameRule} Правило переименования, может возвращать что угодно
* @param {any[]} Массив отфильрованных результатов функции renameRule
*/
function renameSheetsByCellValue_(spreadsheet, filterSheets, renameRule) {
var res;
var sheets = spreadsheet.getSheets();
if (filterSheets) res = sheets.filter(filterSheets) || sheets;
if (renameRule) res = res.map(renameRule);
return res;
}
/**
* Фильтр листов
* @callback filterSheets
* @param {GoogleAppsScript.Spreadsheet.Sheet} sheet Текущий лист
* @param {number} index Текущий индекс массива
* @param {GoogleAppsScript.Spreadsheet.Sheet[]} sheets Текущий массив
* @returns {boolean}
*/
/**
* Правило переименования
* @callback renameRule
* @param {GoogleAppsScript.Spreadsheet.Sheet} sheet Текущий лист
* @param {number} index Текущий индекс массива
* @param {GoogleAppsScript.Spreadsheet.Sheet[]} sheets Текущий массив
* @returns {any}
*/