Google Apps Script: Полный курс для начинающих — с чего начать?

Что такое Google Apps Script и для чего он нужен?

Google Apps Script (GAS) – это облачная платформа разработки, основанная на JavaScript, которая позволяет автоматизировать задачи и расширять функциональность приложений Google Workspace (Sheets, Docs, Slides, Forms, Gmail и др.). GAS даёт возможность создавать собственные решения, интегрированные непосредственно в экосистему Google, без необходимости развертывания внешних серверов или инфраструктуры. Он предоставляет доступ к API Google и позволяет взаимодействовать с внешними сервисами через HTTP-запросы.

Преимущества использования Google Apps Script

Простота использования: Основан на JavaScript, что делает его доступным для широкого круга разработчиков.

Интеграция с Google Workspace: Бесшовная интеграция с сервисами Google обеспечивает мощные возможности автоматизации.

Облачная платформа: Код выполняется в облаке, не требуя локальной установки или настройки.

Автоматизация рутинных задач: Сокращение времени и усилий, затрачиваемых на повторяющиеся операции.

Расширение функциональности Google Workspace: Добавление пользовательских функций и возможностей, недоступных в стандартных приложениях.

Области применения Google Apps Script: примеры задач

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

Автоматизация отчетности в Google Sheets: Например, можно автоматически собирать данные из различных источников (Google Analytics, рекламные платформы) и формировать отчеты, отправляемые по расписанию.

/**
 * Функция для автоматической генерации отчетов по данным Google Analytics.
 * @param {string} accountId - ID аккаунта Google Analytics.
 * @param {string} webPropertyId - ID ресурса Google Analytics.
 * @param {string} profileId - ID представления Google Analytics.
 * @return {void}
 */
function generateAnalyticsReport(accountId: string, webPropertyId: string, profileId: string): void {
  // Получаем данные из Google Analytics API
  const data = Analytics.Data.Ga.get(
    'ga:' + profileId,
    '30daysAgo',
    'today',
    'ga:sessions,ga:pageviews',
    { 'dimensions': 'ga:date' }
  );

  // Создаем новый лист в Google Sheets
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.insertSheet('Analytics Report - ' + new Date().toLocaleDateString());

  // Записываем заголовки
  sheet.getRange(1, 1, 1, 3).setValues([['Date', 'Sessions', 'Pageviews']]);

  // Записываем данные
  const rows = data.getRows();
  if (rows) {
    for (let i = 0; i < rows.length; i++) {
      const row = rows[i];
      sheet.getRange(i + 2, 1, 1, 3).setValues([[row[0], row[1], row[2]]]);
    }
  }

  Logger.log('Отчет успешно сгенерирован!');
}

Персонализация email-рассылок в Gmail: Можно создавать скрипты, которые отправляют персонализированные письма на основе данных из Google Sheets или Google Contacts.

Автоматическая обработка заявок из Google Forms: Скрипты могут автоматически сохранять данные из форм в Google Sheets, отправлять уведомления и запускать другие действия.

Интеграция с внешними API: Например, можно интегрировать Google Sheets с API сервисов контекстной рекламы (Google Ads, Yandex.Direct) для автоматического получения и анализа данных.

Начало работы с Google Apps Script

Открытие редактора Google Apps Script

Есть несколько способов открыть редактор GAS:

Из приложения Google Workspace: В Google Sheets, Docs или Forms выберите «Инструменты» > «Редактор скриптов».

Реклама

Через прямой доступ: Перейдите по адресу script.google.com.

Интерфейс редактора: основные элементы и функции

Редактор GAS имеет простой и интуитивно понятный интерфейс. Основные элементы:

Редактор кода: Область для написания и редактирования кода скрипта.

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

Редактор триггеров: Позволяет настроить автоматический запуск скрипта по расписанию или при наступлении определенных событий.

Лог выполнения: Отображает сообщения отладки и ошибки.

Создание и сохранение первого скрипта

Откройте редактор GAS.

Введите простой код, например:

/**
 * Функция для записи сообщения в лог.
 * @return {void}
 */
function myFunction(): void {
  Logger.log('Привет, мир!');
}

Нажмите кнопку «Сохранить» (значок дискеты) и введите имя скрипта.

Нажмите кнопку «Выполнить» (значок треугольника).

Проверьте лог выполнения (Вид > Журнал), чтобы увидеть сообщение «Привет, мир!».

Основы синтаксиса JavaScript для Google Apps Script

GAS использует JavaScript как основной язык программирования. Вам потребуется знание:

Переменные: var, let, const.

Типы данных: string, number, boolean, object, array, null, undefined.

Операторы: +, -, *, /, =, ==, !=, >, <, >=, <=.

Условные операторы: if, else if, else.

Циклы: for, while, do...while.

Функции: function.

Объекты: Создание и манипулирование объектами.

/**
 * Пример использования различных типов данных и операторов.
 * @return {void}
 */
function example(): void {
  const name: string = 'Иван';
  let age: number = 30;
  const isMarried: boolean = true;

  if (age > 18) {
    Logger.log(name + ' - совершеннолетний.');
  } else {
    Logger.log(name + ' - несовершеннолетний.');
  }

  for (let i: number = 0; i < 5; i++) {
    Logger.log('Итерация: ' + i);
  }
}

Работа с Google Sheets

Чтение данных из Google Sheets

Используйте класс SpreadsheetApp для доступа к таблицам Google Sheets.

/**
 * Функция для чтения данных из Google Sheets.
 * @param {string} spreadsheetId - ID таблицы Google Sheets.
 * @param {string} sheetName - Название листа.
 * @return {any[][]} - Двумерный массив данных.
 */
function readDataFromSheet(spreadsheetId: string, sheetName: string): any[][] {
  const ss = SpreadsheetApp.openById(spreadsheetId);
  const sheet = ss.getSheetByName(sheetName);
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();
  return values;
}

Запись данных в Google Sheets

/**
 * Функция для записи данных в Google Sheets.
 * @param {string} spreadsheetId - ID таблицы Google Sheets.
 * @param {string} sheetName - Название листа.
 * @param {any[][]} data - Двумерный массив данных для записи.
 * @return {void}
 */
function writeDataToSheet(spreadsheetId: string, sheetName: string, data: any[][]): void {
  const ss = SpreadsheetApp.openById(spreadsheetId);
  const sheet = ss.getSheetByName(sheetName);
  const lastRow = sheet.getLastRow();
  const numRows = data.length;
  const numCols = data[0].length;
  sheet.getRange(lastRow + 1, 1, numRows, numCols).setValues(data);
}

Форматирование данных и работа с диапазонами

GAS предоставляет методы для форматирования ячеек, установки шрифтов, цветов и т.д.

/**
 * Функция для форматирования диапазона ячеек.
 * @param {string} spreadsheetId - ID таблицы Google Sheets.
 * @param {string} sheetName - Название листа.
 * @param {string} range - Диапазон ячеек для форматирования (например,

Добавить комментарий