Обложка канала

Google Таблицы

#GoogleТаблицы — это аналог #Excel с веб-интерфейсом и возможностями для удобной совместной работы. Они похожи, и все же в Таблицах есть свои особенности, функции, плюсы и минусы. Работать в Google Таблицах просто и мы покажем как.

Google Таблицы

3 года назад
Открыть в
Оглавление Таблицы скриптами Друзья, привет! В первом посте 2023 года решим классическую проблему – выведем список всех листов Таблицы вместе с ссылками на каждый лист. Базовый скрипт. function sheets() { //текущая таблица const ss = SpreadsheetApp.getActive(); //определяем ссылку на текущую таблицу const ssUrl = ss.getUrl(); //проходим по всем листам Таблицы в цикле и формируем массив [ссылка на лист, название листа] return ss.getSheets().map(sheet => [`${ssUrl}#gid=${sheet.getSheetId()}`, sheet.getName()]); } Скрипт будет работать как пользовательская функция, просто вставьте =sheets() на лист в любую ячейку, как на скриншоте. Хак, чтобы оглавление, которое выводится обновлялось почаще – передаём в функцию любой аргумент из листа, =sheets(k1), например. Вставляем оглавление как значения при открытии Таблицы. Добавляем код ниже. function onOpen() { const arr = sheets(); const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('оглавление') || ss.insertSheet('оглавление'); sh.clearContents(); sh.getRange(1, 1, arr.length, arr[0].length).setValues(arr); } Вставляем оглавление гиперссылками (будет один столбец) при открытии Таблицы function onOpen() { const arr = sheets().map(f => [SpreadsheetApp.newRichTextValue() .setText(f[1]) .setLinkUrl(f[0]) .build()]); const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('оглавление') || ss.insertSheet('оглавление'); sh.clearContents(); sh.getRange(1, 1, arr.length, arr[0].length).setRichTextValues(arr); }