Введение в Google Apps Script
Google Apps Script — это мощная платформа на основе JavaScript, которая позволяет автоматизировать задачи, расширять функциональность Google Sheets и даже создавать веб-приложения. Если вы знакомы с JavaScript, то обнаружите, что Apps Script хорошо подходит вам. А если нет, не беспокойтесь — его легко освоить, и он невероятно универсален.
Настройка первого скрипта
Чтобы начать работу с Google Apps Script, необходимо открыть или создать таблицу Google Sheets. Вот как это можно сделать:
- Откройте или создайте Google Sheet: перейдите в Google Sheets и либо откройте существующую таблицу, либо создайте новую.
- Получите доступ к Apps Script: перейдите в меню и выберите «Расширения» > «Apps Script». Это откроет редактор Apps Script на новой вкладке.
Базовая структура скрипта
Вот простой пример, который поможет вам начать работу. Давайте напишем скрипт, который вставляет текущую дату в ячейку.
function insertDate() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange("B2");
cell.setValue(new Date());
}
- Сохраните скрипт: нажмите на значок дискеты или нажмите Ctrl+S (или Cmd+S на Mac), чтобы сохранить свой скрипт.
- Запустите скрипт: вы можете запустить скрипт, нажав на кнопку воспроизведения или нажав кнопку запуска на панели инструментов.
Пользовательские функции в Google Sheets
Пользовательские функции — одна из самых мощных возможностей Google Apps Script. Они позволяют расширить встроенные функции Google Sheets вашей собственной логикой.
Создание пользовательской функции
Вот пример пользовательской функции, которая преобразует дюймы в миллиметры:
/**
* Преобразует дюймы в миллиметры.
*
* @param {number} inches Значение в дюймах.
* @return {number} Значение в миллиметрах.
* @customfunction
*/
function in2mm(inches) {
return inches * 25.4;
}
- Использование пользовательской функции: после сохранения скрипта вы можете использовать эту функцию в своей таблице Google Sheets так же, как и любую встроенную функцию. Например,
=in2mm(A1)
или=in2mm(10)
.
Типы данных и соображения
При работе с пользовательскими функциями важно понимать, как типы данных обрабатываются между Google Sheets и Apps Script.
- Даты и время: они становятся объектами Date в Apps Script.
- Значения длительности: также становятся объектами Date, но с ними может быть сложно работать.
- Процентные значения: становятся десятичными числами в Apps Script (например, 10% становится 0,1).
Добавление пользовательских меню и кнопок
Чтобы сделать свои скрипты более удобными для пользователя, вы можете добавить пользовательские меню и кнопки в свою таблицу Google Sheets.
Пользовательские меню
Вот как можно добавить пользовательское меню для запуска функции insertDate
:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Пользовательское меню')
.addItem('Вставить дату', 'insertDate')
.addToUi();
}
- Сохранить и перезагрузить: сохраните скрипт и перезагрузите свою таблицу Google Sheets. Теперь вы должны увидеть новый пункт меню под названием «Пользовательское меню» с возможностью «Вставить дату».
Пользовательские кнопки
Вы также можете создавать пользовательские кнопки для запуска своих скриптов. Вот как:
- Вставьте кнопку: в своей таблице Google Sheets перейдите в меню «Вставка» и выберите «Рисунок». Нарисуйте кнопку и нажмите «Сохранить и закрыть».
- Назначьте скрипт: щёлкните по кнопке, затем перейдите в меню с тремя вертикальными точками на кнопке и выберите «Назначить скрипт». Введите название вашей функции, например,
insertDate
.
Триггеры в Google Apps Script
Триггеры позволяют вашим скриптам запускаться автоматически на основе определённых событий или в определённое время.
Простые триггеры
Простые триггеры легко настроить, и они могут реагировать на такие события, как открытие или редактирование таблицы.
function onOpen() {
// Код для запуска при открытии таблицы
}
function onEdit(e) {
// Код для запуска при редактировании таблицы
}
Устанавливаемые триггеры
Устанавливаемые триггеры предлагают больше гибкости и могут быть настроены для запуска в определённое время или в ответ на более сложные события.
- Откройте страницу триггеров: в редакторе Apps Script нажмите на иконку часов в левой боковой панели.
- Создайте триггер: нажмите на значок +, чтобы создать новый триггер. Вы можете настроить его для запуска по расписанию, при редактировании или других событиях.
Вот пример настройки триггера для запуска функции insertDate
каждую минуту:
Подключение Google Sheets к Google Forms
Apps Script также может интегрировать Google Sheets с Google Forms, позволяя автоматизировать задачи на основе отправки форм.
Создание связанного с формой скрипта
Вот как вы можете настроить скрипт для ответа на отправку форм:
function onFormSubmit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
// Код обработки данных отправки формы
}
- Настройка триггера: перейдите на страницу триггеров и настройте триггер
onFormSubmit
.
Веб-хуки для Google Sheets
Веб-хуки позволяют получать и регистрировать данные из внешних источников непосредственно в вашу таблицу Google Sheets. Вот как вы можете это настроить с помощью дополнения:
- Установите дополнение Webhooks: перейдите в Интернет-магазин Google Workspace Marketplace и установите дополнение
Webhooks for Sheets
. - Включите API: следуйте инструкциям, чтобы включить API Google Apps Script.
- Настройте веб-хук: используйте дополнение для настройки веб-хука и разверните его как веб-приложение.
Оптимизация и лучшие практики
Работая с пользовательскими функциями и скриптами, важно оптимизировать свой код, чтобы избежать проблем с производительностью.
- Минимизируйте вызовы функций: каждый вызов пользовательской функции может замедлить работу вашей таблицы. Попробуйте минимизировать количество вызовов.
- Используйте кэширование: если ваш скрипт получает данные из внешних источников, рассмотрите возможность использования кэширования для уменьшения количества запросов.
Заключение
Google Apps Script — мощный инструмент для автоматизации и расширения функциональности Google Sheets. Благодаря пользовательским функциям, меню, кнопкам и триггерам вы можете создавать интерактивные и автоматизированные таблицы. Независимо от того, новичок вы или опытный разработчик, Apps Script предлагает широкий спектр возможностей для повышения эффективности вашего рабочего процесса и производительности.