Работа с листом в Гугл таблице с помощью скрипта
  • Ігор Білецький
  • 22.11.2021
  • Коментарі відсутні

В текущей статье я хочу поделиться своими знаниями, как и что можно проделывать с листом гугл таблицы с помощью скрипта. Данный материал идет, как дополнение к основной статье по гугл скриптам и программным решениям при работе с гугл таблицей.

Обратиться к существующему листу гугл таблицы

1. SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]

Обращаемся к коллекции листов в активной таблице и берем первый (нумерация начинается с нуля)

2. SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

Обращаемся к активному листу (открытому на текущий момент)

3. SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Лист1")

Обращаемся к листу по имени (в примере «Лист1»).

Работать с листами можно не только в открытой таблице. С помощью скрипта можно открыть другую таблицу, а затем работать с ее листами точно так же, как и в активной таблице.

Как скриптом открыть другую гугл таблицу, описано ЗДЕСЬ.

Далее в статье, для удобства, в качестве примера будем использовать активную гугл таблицу.

Создать новый лист

let ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet();

Данным кодом вставляем новый лист после активного (открытого в текущий момент), присваиваем ему имя по умолчанию (типа Лист10) и делаем его активным.

let ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet("Новый лист");

Вставляем новый лист после активного, присваиваем имя «Новый лист» и активируем его.

let ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet(1);

Вставляем новый лист после первого, называем по умолчанию (типа Лист11) и активируем его. Если нужно вставить новый лист в самом начале, то в качестве индекса необходимо указать 0 (нумерация листов начинается с нуля).

let ss = SpreadsheetApp.getActiveSpreadsheet();
let pattern = ss.getSheetByName("testSheet");
ss.insertSheet(1,{template: pattern});

Сделать копию существующего листа (в примере копируем лист «testSheet») и поместить ее после первого листа (цифра 1 — порядковый номер листа). Похоже, если кликнуть правой кнопкой мышкой на имя нужного листа в выбора пункта «Создать копию», только здесь мы еще выбираем, после какого листа вставить копию.

Вы можете комбинировать различные параметры при создании нового листа. Например, приведу код:

let ss = SpreadsheetApp.getActiveSpreadsheet();
let pattern = ss.getSheetByName("testSheet");
ss.insertSheet("Новый лист 2", 6, {template: pattern});

Данным фрагментом скрипта мы создаем копию листа «testSheet» после 6-го листа и присваиваем ему имя «Новый лист 2».

Удалить лист

let ss = SpreadsheetApp.getActiveSpreadsheet();
ss.deleteActiveSheet();

Удаляем активный лист. Будьте внимательны, т.к. скрипт удаляет лист без подтверждения!

let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet1 = ss.getSheetByName("ЛистДляУдаления");
ss.deleteSheet(sheet1);

Данным скриптом мы удаляем лист, который хранится в переменной sheet1.

Обратите внимание, что метод «deleteSheet» удаляет объект (лист), который хранится в переменной sheet1. Получить его можно любым из способов, описанных выше в статье.

Переименовать лист

let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet1 = ss.getActiveSheet();
sheet1.setName("Новое имя");

Данный скрипт меняет имя активного листа (то, что лежит в переменной sheet1) на «Новое имя». Как и в предыдущем случае, получить в переменную sheet1 объект лист можно различными способами.

Конечно же, можно использовать сокращенную форму:

SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Новое имя").setName("Для тестирования");

Думаю, комментарии здесь излишни 🙂

В конце статьи приведу код функции, которую я часто использую в проектах.

function isSheetExists(spreadSheet, sheetName) {
// если лист существует, возвращает True или False, если указанного листа нет
  try {
    spreadSheet.getSheetByName(sheetName).getRange(1,1).getValue(); //попытка обращения к ячейке листа
    return true;
  } catch(e) {return false;}
};

Данная функция проверяет существование определенного листа в заданной таблице (в переменной sheetName передаем имя листа, в spreadSheet — наша таблица, как объект).

Если лист существует — возвращает истину, или ложь — в противном случае.

Вариантов использования данной  функции может быть сколько угодно.

Например, перед удалением определенного листа или при копировании данных из одной таблицы в другую, вначале проверяем существование листа, чтобы потом не возникло непредвиденной ошибки и т.п.

Надеюсь, информация в статье оказалась вам полезной. Дополнительно рекомендую к прочтению обзорную статью с различными решениями, скриптами и прочими полезностями при работе с гугл таблицами.

Рекомендую также сохранить статью в закладки, т.к. планируется обновление и дополнение информации.

Кстати, если наш сайт принес вам пользу и вы хотите сказать нам «Спасибо» и поддержать нас 🙏, то это можно сделать ЗДЕСЬ.

Рекомендую почитать:

 

Залишити коментар

Есть клиенты? Используйте CRM в Гугл Таблице для учета

Підтримати сайт! Дякуємо!

Подякувати і подтримати сайт

Заробляй через інтернет

Доход через интернет: биржи фриланса и удаленной работы

Футажі для відео ютуб

Футажі для ютуба