Google Apps Script: основы за 15 минут с примерами
Нужна автоматизация? Обсудим вашу задачу бесплатно
Написать в TelegramGoogle Apps Script (GAS) — это язык программирования на базе JavaScript, который позволяет автоматизировать задачи в Google Workspace. В этом гайде разберём основы и создадим первый полезный скрипт.
Что такое Apps Script?
- Язык: JavaScript (ES5 + некоторые ES6 фичи)
- Среда: Облачная, запускается на серверах Google
- Интеграции: Sheets, Docs, Gmail, Drive, Calendar, Forms
Как начать
Способ 1: Из Google Таблицы
- Откройте таблицу
- Расширения → Apps Script
- Откроется редактор кода
Способ 2: Отдельный проект
- Перейдите на script.google.com
- Новый проект
Базовые концепции
Работа с таблицей
// Получить активную таблицу
const ss = SpreadsheetApp.getActiveSpreadsheet();
// Получить лист
const sheet = ss.getSheetByName('Лист1');
// Получить значение ячейки
const value = sheet.getRange('A1').getValue();
// Записать значение
sheet.getRange('B1').setValue('Привет!');
// Получить диапазон данных
const data = sheet.getRange('A1:D10').getValues();
// data — это двумерный массив [[row1], [row2], ...]
Работа с Gmail
// Отправить письмо
GmailApp.sendEmail(
'email@example.com',
'Тема письма',
'Текст письма'
);
// Получить непрочитанные
const threads = GmailApp.search('is:unread');
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(msg => {
console.log(msg.getSubject());
});
});
Работа с Drive
// Создать папку
const folder = DriveApp.createFolder('Новая папка');
// Найти файл по имени
const files = DriveApp.getFilesByName('Отчёт');
while (files.hasNext()) {
const file = files.next();
console.log(file.getUrl());
}
// Сохранить данные в файл
const content = 'Содержимое файла';
DriveApp.createFile('log.txt', content);
Триггеры
Триггеры запускают скрипты автоматически.
Типы триггеров
| Тип | Когда срабатывает |
|---|---|
| onOpen | При открытии таблицы |
| onEdit | При изменении ячейки |
| onFormSubmit | При отправке формы |
| Time-driven | По расписанию |
Примеры
// Добавить меню при открытии
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Мои скрипты')
.addItem('Отправить отчёт', 'sendReport')
.addToUi();
}
// Реакция на изменение
function onEdit(e) {
const range = e.range;
const value = e.value;
if (range.getColumn() === 1 && value === 'Готово') {
range.setBackground('green');
}
}
Установка триггера по времени
function createTrigger() {
ScriptApp.newTrigger('dailyTask')
.timeBased()
.atHour(9)
.everyDays(1)
.create();
}
function dailyTask() {
console.log('Выполняется каждый день в 9 утра');
}
Практический пример: Автоотчёт
Скрипт отправляет ежедневный отчёт по email.
function sendDailyReport() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('Данные');
// Получаем данные за сегодня
const today = new Date().toDateString();
const data = sheet.getDataRange().getValues();
const todayRows = data.filter(row => {
const rowDate = new Date(row[0]).toDateString();
return rowDate === today;
});
// Формируем отчёт
const total = todayRows.reduce((sum, row) => sum + row[2], 0);
const report = `
Отчёт за ${today}
Записей: ${todayRows.length}
Сумма: ${total}
Детали:
${todayRows.map(r => `• ${r[1]}: ${r[2]}`).join('\n')}
`;
// Отправляем
GmailApp.sendEmail(
'boss@company.com',
'Ежедневный отчёт',
report
);
}
Ограничения
| Лимит | Значение |
|---|---|
| Время выполнения | 6 минут |
| Записей в таблицу | 2 млн ячеек |
| Email в день | 100 (бесплатно) |
| UrlFetch запросы | 20,000/день |
Лучшие практики
- Логирование: Используйте
console.log()для отладки - Обработка ошибок:
try-catchдля критичных операций - Кэширование:
PropertiesServiceдля хранения настроек - Тестирование: Проверяйте на копии данных
Следующие шаги
- Изучите официальную документацию
- Посмотрите примеры в наших статьях ниже
Читайте также
- Редактор скриптов. Открываем, сохраняем и запускаем скрипты в Google таблицах
- Библиотеки в гугл скриптах. Как подключить и использовать
Нужна помощь?
Разработаем автоматизацию под ваши задачи. Напишите в Telegram.
Не хотите разбираться сами?
Если читали статью и поняли, что руками уже не справляетесь — напишите. Оценим задачу бесплатно и предложим решение.
Как автоматизация окупается → Чеклист: 7 процессов для автоматизации →
Похожие статьи

Удалите строки по условию в Google Таблице за секунды. Скрипт через Sheets API — в 10 раз быстрее стандартного deleteRow. Скопируйте и запустите за 5 минут.

Автоперенос строк на другой лист Google Таблицы при смене статуса. Готовый скрипт Apps Script — скопируйте таблицу и настройте за 5 минут. Шаг за шагом.

Как подключить библиотеку в Гугл Таблицах и использовать в скриптах. Пошаговая инструкция с примерами для Google Apps Script.
Нужна помощь с автоматизацией?
Разработаем решение под ваши задачи — от скрипта до полноценной интеграции.
Написать в TelegramПодписывайтесь — делимся скриптами, кейсами и лайфхаками