К основному контенту

Сообщения

Обновление Формы при отправке

Формы Google не являются динамическими. Никакой связи с сервером они не держат, поэтому ничего "подтягивать" они не будут. Но иногда случаются задачи, которые могут быть решены с помощью возможности редактирвоания Формы. Триггер отправки Формы запускает цепочку изменений. Совсем как в дополнениии "Other Etc" . Пример Небольшое приложение, которое открывает Таблицу и читает значение диапазона по адресу Обработка триггера отправки Формы и изменение Формы Как это все работает? Создается проект скрипта в Форме или в Таблице . Регистрируется триггер отправки Формы для функции onFormSubmit . В данном примере это сделано в Форме. При срабатывании триггера , открывается Таблица, к которой привязана Форма и оттуда берется указанное в настройках значение. Для текущего примера это значение общей суммы всех чисел внесенных через Форму. Как только значение получено, обновляется описание Формы - выводится новая сумма для последующих респондентов. Loadin...

Удаление строк по условию

Часто возникает задача удаления строк из Таблицы Google по какому-либо условию. Разнообразие условий так велико, что порой приходится создавать метод "удаления строк" снова и снова. Довольно утомительно. Для простых офсных скриптов можно применить сниппет, описанный ниже. Основная идея заключается в том, чтобы взять весь массив данных и перебрать его в обратном порядке. При переборе каждая строка передается в функцию обратного вызова, которая принимет решение удалить строку или нет. Для оптимизации количество последовательных строк суммируется, и для удаления применяется метод deleteRows(rowPosition, howMany) класса Sheet В примере ниже скрипт удаляет строки автивного листа, в которых ячейки из диапазона D27:D77 и F27:F77 попарно пустые

Как открыть ссылку с помощью Google Apps Script?

Часто возникает задача, в которой требуется по результатам работы скрипта открыть ссылку в новом окне/вкладке браузера. В Google Apps Script не существует методов взаимодействия с браузером. Единственная более-менее реальная связь между пользователем и сервером скрипта находится в интерфейсе реализуемой программы. Это может быть Таблица, Документ или Web приложение. Все они реализуются через HtmlService. Например, SpreadsheetApp.getUi().showModelessDialog(htmlOutput, "title"); Понятно, что в построенном htmlOutput , можно выполнить код для текущего window . Например, window.open(url, "_blank"); Идея обернутая кодом ниже по тексту. Пользователь выбирает ячейку в Таблице (или все, что угодно, что формирует ссылку). На сервере На клиенте строится окно диалога, открывается новая вкладка браузера и закрывается окно диалога, при успешном выполнении условия. Иначе появляется сообщение, что переданный параметр не ссылка. Этот метод имеет существенный недостаток...

Геокодирование почтового адреса. Maps Service

Базовая задача заключается в том, чтобы получить из адресов, записанных в Таблице, их географические координаты. Google Apps Script является одним из самых простых вариантов для достижения цели. Добавьте адреса в первую колонку Таблицы и запустите следующий скрипт: Пример Таблицы

Работа с Blogger API

Демонстрация возможностей работы с Blogger API Этот пост обновляется с помощью функции updatePost() Вообще, чтобы получить информацию о блоге, зная его ID, можно выполнить getBlog() Создать новый пост на основе текста из Документа createPost() Весь UrlFetchApp обернут в fetch

Определения и области применения триггеров событий Edit и Change

В этой статье рассмотрены два триггера событий Edit и Change . Определения Важное замечание. Оба события происходят только при прямых действиях пользователей в Таблицах. Т.о. действие триггера или дискретной функции не может сгенерировать после себя событие. Edit - событие широкого применения, которое происходит, когда изменяется значение диапазона Таблицы. Очень важно понять, что изменение касается только данных Таблицы и только в случае, если событие-инициатор произведено пользователем . Change - событие, которое возникает при изменении контента или структуры самой Таблицы . Например, изменение цвета, размера ячейки, удаление, создание или перемещение листа. Области применения Триггер события Edit используется как простой onEdit  и как устанавливаемый (регистрируемый) триггер. Это означает, что он может быть вызван как любым редактором, так и создателем триггера. Событие Change может быть связано только регистрируемым триггером. Аргументы Событие Edit пер...

Неоднозначный перевод триггеров в русскоязычной локализации

Если скрипт привязан к Таблице, то в списке доступных триггеров проекта будут триггеры onEdit и onChange . Кто-то в Гугл постарался и локализовал их как Изменение и, как бы странно это не звучало, Изменение . Если вы приняли решение продолжать использовать эту локализацию, то вот подсказка для соответствия: первое Изменение - это onEdit , а второе - onChange . Пытаемся надавить на Google на треккере ошибок тут Ambiguous translation of the names of triggers into Russian путем нажатия на звездочку.