Экспорт таблиц Google Sheets в PDF файл

 

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

В Google таблицах есть возможность экспорта в PDF формате. Для это нужно зайти в меню Файл->Скачать->Документ PDF. Чтобы понять, как Google делает экспорт, воспользуемся браузерными инструментами разработчика. Откроем нужную нам таблицу и нажмем сочетание клавиш Ctrl+Shift+I(браузер Оперы или Google Chrome), и перейдем на вкладку Ethernet как на картинке ниже

Инструменты разработчика

Теперь сделаем экспорт в PDF через меню Google таблиц и найдем ссылку, которая отвечает за это действие

Ссылка для экспорта

Нажмем на ссылку и посмотрим параметры, которые передаются на сервер

Параметры форматирования для экспорта

На сервер передается идентификатор таблицы и три параметра: a, pc, gf. Для чего нужны a и gf я не знаю, а вот параметр pc – это все настройки выборки и форматирования для экспорта Google таблицы в PDF файл

Немного пришлось по ломать голову над значением 43745.64856909722, но так как я давно работаю с Delphi ответ пришел сам собой. Опытным путем я определил все необходимые настройки и вот что получилось:

На основе полученных данных можно сделать скрипт для экспорта содержимого Google таблиц в нужном нам формате. Для запуска скрипта сделаем дополнительный пункт меню в триггере onOpen.

Итого мы имеем три функции экспорта:

  • exportPDF – загрузка файла
  • exportPDFtoGDrive – отправка файла в Google диск, в ту же папку, где находится таблица
  • exportPDFtoEMail – отправка файла на электронную почту

И три функции myExportPDF, myExportPDFtoGDrive, myExportPDFtoEMail для примера использования.

Для указания данных и настройки форматирования передаются три параметра source, options и format. Эти параметры это части переменной pc, о которой я писал выше.

 
Поделиться:
0
Дмитрий Маркевич
23.03.2020 13:11
 
Добрый день.

Подскажите как сделать в одном PDF фале, что бы выгружались первые 10 строчек, потом пропустить 10 строчек, и остальные строчки.

Спасибо большое
Показать полностью
5
Руслан Кандирал
23.03.2020 14:28
Дмитрий Маркевич
 
Здравствуйте, Дмитрий

Брать отдельные выборки с одного листа не получится. Вы можете скрывать ненужные строки. Пример:
Но сразу же отобразить эти строки не получится. То есть код ниже отправит в PDF весь диапазон вместе со скрытыми строками
Показать полностью
0
Дмитрий Маркевич
23.03.2020 17:37
Руслан Кандирал
 
спасибо большое
Показать полностью
0
Dmitriy S
07.03.2020 17:04
 
Руслан, спасибо, очень полезный скрипт. А можно ли как-то сделать, что бы несколько листов экспортировались в PDF?
Показать полностью
5
Руслан Кандирал
07.03.2020 17:15
Dmitriy S
 
В параметр source передается информация о том, что именно выводить в PDF
В примере ниже источником будет выступать содержимое двух листов с именами "MySheetName" и "MySheetName2"

Показать полностью
0
Dmitriy S
08.03.2020 02:27
Руслан Кандирал
 
Руслан, огромное спасибо, все супер... Еще один вопрос, а масштаб где-то можно выставить, что бы весь выделенный диапазон помещался на лис? или это автоматом?
Показать полностью
0
Руслан Кандирал
08.03.2020 06:56
Dmitriy S
 
В параметре format третье и четвертое значения отвечаю за масштаб
Третье значение указывает на метод масштабирования:
1) 100%
2) Выровнять по ширине
3) Выровнять по высоте
4) Выровнять по размеру страницы
5) Пользовательский масштаб

Четвертое значение необходимо если в предыдущем значении указано пользовательское масштабирование. Тут мы указываем коэффициент масштабирования с точностью до двух знаков после точки. Например: 50%->0.5, 25%->0.25, 200%->2

В примере ниже устанавливается масштаб по ширине листа
В примере ниже устанавливается масштаб 50%
Показать полностью
0
Dmitriy S
08.03.2020 21:31
Руслан Кандирал
 
вот параметр format ["A4",1,2,1,[0.75,0.75,0.7,0.7]]
Не совсем понятно А4 - 100% или я не туда смотрю?

Раньше писали:
[
"A4", // Фрмат листа A4
1, // Ориентация страницы вертикальная
2, // Выровнять по высоте
1,
[
0.75, // Отступ сверху 0.75 дюймов
0.75, // Отступ снизу 0.75 дюймов
0.7, // Отступ слева 0.7 дюйма
0.7 // Отступ справа 0.7 дюйма
]
]

Или в Этом параметре ["A4",1,2,1,[0.75,0.75,0.7,0.7]] нужно 2 заменить на 4 и это будет Выровнять по размеру страницы?

Просто слово ВЫРОВНЯТЬ не совсем понятно в контексте МАСШТАБА...
Если это масштабирование то тогда УМЕСТИТЬ или ВПИСАТЬ или ПОДОГНАТЬ в ширину страницы... По этому я и запутался...
Показать полностью
5
Руслан Кандирал
08.03.2020 21:53
Dmitriy S
 
Да, двойка это и есть параметр, который может принимать пять значений описанных в моём предыдущем комментарие. А следующее значение это произвольный масштаб
Показать полностью
0
Dmitriy S
09.03.2020 03:30
Руслан Кандирал
 
Огромное спасибо... все разобрал... работает...
Показать полностью
0
Евгений Сакин
03.01.2020 18:45
 
Руслан,подскажи пожалуйста,что в этом коде поменять,что бы печаталась не активная страница,а допустим первая?Например:я нахожусь на листе5,а нужно что бы отпечатался лист 1.
Показать полностью
5
Руслан Кандирал
03.01.2020 19:09
Евгений Сакин
 
Измените строку
var sheet=as.getActiveSheet();
на
var sheet=as.getSheetByName("MySheetName");
Где MySheetName - название нужного листа
Показать полностью
0
Евгений Сакин
03.01.2020 19:16
Руслан Кандирал
 
Спасибо большое!Все получилось.
Показать полностью
0
Евгений Сакин
02.01.2020 19:42
 
Приветствую!Отличная работа.А подскажи,возможно ли сделать так,что бы таблица экспортировалась в файл в формате jpeg?
Показать полностью
5
Руслан Кандирал
02.01.2020 20:25
Евгений Сакин
 
Здравствуйте! В Google таблицах экспорта в картинку нет. Может возможно с помощью скрипта каким-то образом преобразовать pdf в изображение, но я с этим еще не сталкивался.
Показать полностью
0
Евгений Сакин
02.01.2020 22:15
Руслан Кандирал
 
Так вот я и думаю,что нужно скриптом.Но со скриптами я не очень.Макрос там какой то записать,это можно.Ну вобщем буду следить за Вашими новыми проектами.Удачи вам и 100к подписчиков на канал!
Показать полностью

Новости сайта

17.03.2020 20:46
Обновлен пакет компонентов для Delphi
Доступна для скачивания новая версия компонентов для Delphi, от 17.03.2020г. С данной версии библиотеки доступны и на GitHub
28.01.2020 16:15
Опубликована статья о принципе работы коннекторов в Delphi
Коннектор – это объект, осуществляющий связь с внешними объектами(объектом). Внешним объектом может выступать другая программа или другое устройство, которое поддерживает тот же интерфейс или протокол связи.
20.11.2019 22:12
Обновлен пакет библиотек для Delphi
Доступна для скачивания новая версия компонентов для Delphi от 20.11.2019г.
16.10.2019 12:45
Экспорт Google Sheets в PDF файл
Пример экспорта Google таблицы в PDF файл с помощь Google Script

Популярные статьи

Инструкция по установке компонентов на Delphi
Подробная инструкция по установке компонентов на Delphi с видео обзором
Modbus Slave на Arduino
Реализация клиентской части протокола Modbus RTU и Modbus ASCII для контроллеров Arduino
Набор компонентов для Delphi
Набор компонентов для Delphi включает в себя компонент для работы с файловой системой, сетью, автоматизацией и другие.
Пример передачи данных по протоколу Modbus на Delphi
Пример передачи данных с контроллера ОВЕН ПЛК100 в программу на Delphi по протоколу Modbus