6 способов получить лист по имени в скрипте Google Apps

При работе со скриптом Google Apps вам часто может потребоваться получить определенный лист из электронной таблицы Google Sheets по его имени. В этой статье мы рассмотрим несколько методов выполнения этой задачи. Каждый метод сопровождается примерами кода, которые помогут вам понять реализацию. Давайте погрузимся!

Метод 1: использование getSheetByName(name)
Пример кода:

function getSheetByNameMethod() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("Sheet1");
  Logger.log("Sheet: " + sheet.getName());
}

Объяснение:
Метод getSheetByName(name) — это простой способ получить лист по его имени. Он ищет лист с указанным именем в активной электронной таблице и возвращает соответствующий объект листа.

Метод 2: использование getSheets() и цикла for
Пример кода:

function getSheetByLoopMethod() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();

  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    if (sheet.getName() === "Sheet1") {
      Logger.log("Sheet: " + sheet.getName());
      break;
    }
  }
}

Объяснение:
В этом методе мы извлекаем все листы активной электронной таблицы с помощью метода getSheets(). Затем мы перебираем каждый лист с помощью цикла for и сравниваем имя каждого листа с желаемым именем. Как только совпадение найдено, мы записываем имя листа и выходим из цикла с помощью оператора break.

Метод 3: использование SpreadsheetApp.openById(id) и getSheetByName(name)
Пример кода:

function getSheetByOpenByIdMethod() {
  var spreadsheet = SpreadsheetApp.openById("SPREADSHEET_ID");
  var sheet = spreadsheet.getSheetByName("Sheet1");
  Logger.log("Sheet: " + sheet.getName());
}

Объяснение:
Метод openById(id)открывает электронную таблицу по ее уникальному идентификатору. Этот метод полезен, если вы хотите получить доступ к определенной электронной таблице, которая не является активной. После открытия электронной таблицы вы можете использовать метод getSheetByName(name)для получения листа по его имени.

Метод 4: использование SpreadsheetApp.openByUrl(url) и getSheetByName(name)
Пример кода:

function getSheetByOpenByUrlMethod() {
  var spreadsheet = SpreadsheetApp.openByUrl("SPREADSHEET_URL");
  var sheet = spreadsheet.getSheetByName("Sheet1");
  Logger.log("Sheet: " + sheet.getName());
}

Объяснение:
Как и предыдущий метод, метод openByUrl(url)открывает электронную таблицу, используя ее URL-адрес вместо идентификатора. Этот метод полезен, если у вас есть URL-адрес таблицы, но нет идентификатора.

Метод 5: использование SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name)
Пример кода:

function getSheetByActiveSpreadsheetMethod() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  Logger.log("Sheet: " + sheet.getName());
}

Объяснение:
В этом методе мы объединяем методы getActiveSpreadsheet()и getSheetByName(name)в одной строке кода. Этот подход напрямую извлекает лист по имени из активной электронной таблицы.

Метод 6: использование SpreadsheetApp.open(filename) и getSheetByName(name)
Пример кода:

function getSheetByOpenMethod() {
  var spreadsheet = SpreadsheetApp.open("SPREADSHEET_FILENAME");
  var sheet = spreadsheet.getSheetByName("Sheet1");
  Logger.log("Sheet: " + sheet.getName());
}

Объяснение:
Метод open(filename)открывает электронную таблицу по ее имени файла. Этот метод полезен, если у вас есть электронная таблица, хранящаяся на вашем Google Диске, и вы знаете ее точное имя файла.

В этой статье мы рассмотрели шесть различных способов получения листа по имени в скрипте Google Apps. В зависимости от ваших конкретных требований вы можете выбрать наиболее подходящий метод из предоставленных примеров. Используя эти методы, вы можете эффективно работать с листами в таблицах Google Sheets с помощью Apps Script.

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