В данной работе рассмотрим, как с помощью скрипта автоматически создавать PDF-файлы из Google Таблиц, а затем отправлять их по email или сохранять в Google Диске.
🔗Ссылку на источник: Как настроить автоматическое создание PDF из Google Таблиц
✏️ Разбор кода и добавление комментариев
Вот пример скрипта, который конвертирует Google Таблицу в PDF и отправляет её по email (добавленные комментарии поясняют каждую строку кода):
function exportToPDF() {
// Получаем активную электронную таблицу (Google Sheet)
const sheet = SpreadsheetApp.getActiveSpreadsheet();
// Получаем уникальный идентификатор активного листа
const sheetId = sheet.getSheetId();
// Формируем URL для экспорта листа в формат PDF
const pdfUrl = `${sheet.getUrl()}/export?format=pdf&gid=${sheetId}`;
// Определяем параметры запроса
const options = {
headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() }, // Авторизация через OAuth
muteHttpExceptions: true // Отключает выброс ошибок при проблемах с запросом
};
// Отправляем запрос для получения PDF-файла
const response = UrlFetchApp.fetch(pdfUrl, options);
// Преобразуем полученный файл в формат Blob и задаём ему имя
const blob = response.getBlob().setName('Report.pdf');
// Сохраняем файл в корневую папку Google Диска
DriveApp.createFile(blob);
}
🔹 Что делает код?
- Получает текущую Google Таблицу и её ID.
- Формирует URL для экспорта в формате PDF.
- Использует
UrlFetchApp.fetch
для получения PDF-файла.
Предварительно создана таблица на листе “Товары”:

✏️ Измененяем и улучшаем код
function exportAndSavePDF() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Товары"); // Название листа
var sheetId = sheet.getSheetId();
var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
// Создаём URL-адрес для экспорта в PDF
var url = "https://docs.google.com/spreadsheets/d/" + spreadsheetId + "/export?format=pdf" +
"&gid=" + sheetId + "&portrait=true&size=A4";
// Отправляем запрос на скачивание PDF
var response = UrlFetchApp.fetch(url, {
headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() }
});
var pdfBlob = response.getBlob().setName(sheet.getName() + ".pdf"); // Создаём файл
// Сохраняем файл в Google Диск в указанную папку
var folder = DriveApp.getFolderById("1SRzYbiBC73e432uo5WKec46_kxU1PxgH"); // ID папки Google Диска
var file = folder.createFile(pdfBlob); // Создаём файл в папке
Logger.log("PDF сохранён в Google Диск: " + file.getUrl()); // Выводим ссылку в лог
}
- Выбор конкретного листа по названию:
sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Товары");
- Формирование URL для экспорта в PDF:
– Чёткое задание формата (format=pdf
) и параметров (portrait=true
,size=A4
).
var url = "https://docs.google.com/spreadsheets/d/" + spreadsheetId + "/export?format=pdf" + "&gid=" + sheetId + "&portrait=true&size=A4";
- Авторизованный запрос на экспорт PDF:
– Добавлена авторизация для запроса (Google требует токен).
– Гарантируется корректное скачивание PDF.
var response = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() } });
- Создание файла PDF из полученного ответа:
– Файл создаётся с именем, соответствующим названию листа “Товары.pdf”.
var pdfBlob = response.getBlob().setName(sheet.getName() + ".pdf");
- Сохранение PDF в указанную папку Google Диска:
– Теперь файл сохраняется в конкретную папку по её ID.
var folder = DriveApp.getFolderById("1SRzYbiBC73e432uo5WKec46_kxU1PxgH");
var file = folder.createFile(pdfBlob);
- Вывод ссылки на PDF в логи:
После выполнения кода можно сразу увидеть ссылку на PDF в логах (удобно для проверки).
Logger.log("PDF сохранён в Google Диск: " + file.getUrl());
Вывод:
🔹 Код теперь автоматически экспортирует конкретный лист в PDF и сохраняет в нужную папку.
🔹 Добавлена авторизация для запроса, корректное именование файла и логирование.
🔹 Код полностью автоматизирован и может работать без ручного вмешательства.
✏️ Добавляем отправку PDF на email
Обновляем код:
function exportAndSavePDF() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Товары");
var sheetId = sheet.getSheetId();
var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
// Создаём URL-адрес для экспорта в PDF
var url = "https://docs.google.com/spreadsheets/d/" + spreadsheetId + "/export?format=pdf" +
"&gid=" + sheetId + "&portrait=true&size=A4";
// Отправляем запрос на скачивание PDF
var response = UrlFetchApp.fetch(url, {
headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() }
});
var pdfBlob = response.getBlob().setName(sheet.getName() + ".pdf"); // Создаём PDF-файл
// Сохраняем PDF в Google Диск
var folder = DriveApp.getFolderById("1SRzYbiBC73e432uo5WKec46_kxU1PxgH"); // ID папки Google Диска
var file = folder.createFile(pdfBlob); // Создаём файл в папке
Logger.log("PDF сохранён в Google Диск: " + file.getUrl()); // Логирование
// Окно для ввода email
var ui = SpreadsheetApp.getUi();
var response = ui.prompt("Введите email", "На какой адрес отправить PDF?", ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
var recipient = response.getResponseText().trim(); // Берём email из ввода пользователя
if (recipient) {
var subject = "Автоматически сгенерированный PDF";
var body = "Во вложении находится PDF-файл с данными из Google Таблицы.";
MailApp.sendEmail({
to: recipient,
subject: subject,
body: body,
attachments: [pdfBlob]
});
Logger.log("PDF отправлен на email: " + recipient);
} else {
Logger.log("Email не был введён.");
}
} else {
Logger.log("Отправка PDF отменена.");
}
}
✅ Теперь перед отправкой появляется окно для ввода email.
✅ Если пользователь нажал “Отмена” или не ввёл email — отправка не выполняется.
Вывод:
В ходе выполнения данной работы был разработан Google Apps Script, который автоматически:
✔ Экспортирует данные из Google Таблицы в формате PDF.
✔ Сохраняет полученный PDF-файл в указанную папку Google Диска.
✔ Запрашивает email у пользователя и отправляет PDF на почту.
✔ Выводит в логах ссылку на сохранённый файл для удобного доступа.
В результате получился полностью автоматизированный процесс, который избавляет от необходимости вручную скачивать, сохранять и отправлять документы. Теперь пользователь может нажимать кнопку в Google Таблице и сразу получать готовый PDF.
