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

Сообщения

Получить содержимое файла проекта

Получить содержимое файла проекта Apps Script Проект Google Apps Script условно состоит из нескольких файлов. Иногда есть необходимость взять содержимое этих файлов. Для html-файлов это довольно просто - можно взять содержимое HtmlService : /** * Способ 1. Получение содержимого файла проекта через HtmlService * * Не подходит для не html-файлов */ function getContentViaHtmlService() { const content = HtmlService.createTemplateFromFile('index') .evaluate() .getContent(); console.log(content); } Для gs-файлов все не так просто. Предыдущий способ для них не подходит. Есть недокументированный метод getResource(имя_файла) сервиса ScriptApp : /** * Способ 2. Получение содержимого файла проекта через ScriptApp */ function getContentViaScriptApp() { const content = ScriptApp.getResource('Code').getDataAsString(); console.log(content); }
Недавние сообщения

Пользовательское меню в Документах, Таблицах и Формах

Google Apps Script умеет создавать меню, содержание которого определяет разработчик. Меню может быть создано для приложений Таблиц, Документы или Формы (режим редактирования). Отличительной особенностью является то, что нельзя передать параметры в вызываемую через меню функцию. Принцип построения меню будет всегда одинаковый: Необходимо получить экземпляр среды пользовательского интерфейса Ui, позволяющий скрипту добавлять такие функции, как меню, диалоговые окна, боковые панели. Создать объект меню createMenu(). Наполнить меню возможными элементами: пунктами меню addItem(), подменю addSubMenu(), разделителями addSeparator(). Добавить меню в интерфейс, вызвав метод addToUi() Для того, чтобы меню появлялось сразу после открытия файла, необходимо добавить функцию создания меню в простой триггер onOpen(). 1. Пример простого приложения для Формы Создает пользовательское меню Содержимое меню Добавление текстового поля Отчет о Форме 2. Пример простого приложения д

Особенности копирования формул

Варианты копирования формул Существует 4 основных способа копирования формул при помощи Google Apps Script: Комбинирование методов  getFormulas()/setFormulas() Использование универсального метода  copyTo() Комбинирование методов  getFormulaR1C1()/setFormulaR1C1() Опосредованное применение комбинирования методов  getFormulas()/setValues() Все эти способы вытекают из возможностей использования методов класса Range . Примеры Положим, что существует ситуация, в которой необходимо программно скопировать формулы в Таблице Гугл. Например, Из ячейки F3 необходимо сопировать формулу в F4 . В данном месте стоит обговорить некоторые детали. Первый, третий и четвертый способы очень похожи. Опосредованность четвертого заключается в том, что при вставке данных Таблица автоматически определяет контент как формулу и превращает ее в таковую. Этот способ полезен тогда, когда необходимо заполнить Таблиц

Форматирование строки при отправке Формы

Некоторые пользователи предпочитают, чтобы форматирование присутствовало на всех листах. При отправке Формы в Таблицу добавляется новая строка, и она не заимствует никакого форматирования. Справиться с этой проблемой может устанавливаемый на событие onFormSubmit скрипт следующего содержания: /** * * @param {GoogleAppsScript.Events.SheetsOnFormSubmit} e */ function onformsubmit(e) { const sheet = e.range.getSheet(); sheet .getRange('1:1') .copyTo(sheet.getRange(`${e.range.getRow()}:${e.range.getRow()}`), { formatOnly: true, }); } Посмотреть как это работает можно тут: Форма Таблица Не забудьте зарегистрировать функцию onformsubmit для события On Form submit Что происходит: Событие вызывает  onformsubmit Получаем текущий лист Берем диапазон "1:1" листа Копируем только форматирование в диапазон, который изменился благодаря форме 3й пункт можно поправить под текущие требования, например, это может быть вторая строка '2

Как создать чекбокс программно

Пока не удалось в оригинальном билдере SpreadsheetApp найти конструктор для галочек Logger.log(JSON.stringify( Object.keys(SpreadsheetApp.newDataValidation()).sort(), null, "  " )); Поэтому придется воспользоваться расширенной службой Google Sheets. Как включить эту ботву, можно прочитать в статье " Расширенные службы Google ". Суть: Создаем объект-ресурс, его заполняем запросами. Конструкция запроса на назначение валидации данных довольно проста:  Указываем диапазон Задаем правило и его параметры. Далее вызываем стандартный метод выполнения пакета запросов из ресурса.

Google Apps Script против JavaScript

Общие данные Google Apps Script основаны на JavaScript 1.6 , плюс несколько функций от 1.7 и 1.8 . Таким образом, многие базовые функции JavaScript доступны в дополнение к встроенным и расширенным службам Google ; вы можете использовать основные объекты, такие как Array , Date , RegExp и т.д. , а также глобальные объекты Math и Object . Однако, поскольку код Apps Script работает на серверах Google (а не на стороне клиента, за исключением страниц HTML-сервиса ), функции на основе браузера, такие как манипуляции с DOM или API windows, недоступны. Вообще принято называть скрипты диалектом JavaScript. Полифил Из вышесказанного следует, что к скриптам можно применить технику использования полифилов. Например, метод Math.trunc() (отбрасывает десятичную запятую и все цифры после неё, не обращая внимания на знак аргумента) поддерживается в более новых версиях JS и в GS его нет. Добавьте следующий файл в ваш проект и все будет ок В документации MDN часто встресаются полифилы с опи

Триггеры Google Apps Script

Все триггеры в скриптах делятся по виду события, типу установки и области применения. Области применения Таблицы Формы Документы Сайты Автономные скрипты  События Open - происходит при открытии файла в приложении Гугл. Например, Формы создают это событие только при открытии в режиме редактирвоания. Edit - происходит при завершении ввода данных в ячейку Таблицы пользователем. Только Таблицы. Только пользователем. Install - автоматически вызывается при установке дополнения. Change - возникает при других (не изменение данных ячейки, например, назначение цвета или ширины колонки) изменених Таблицы вызванных пользователем. Только Таблицы. Только пользователем. Form submit - исполнится только тогда, когда придет ответ от респондента Формы. Time-driven - отложенный триггер действия, срабатывающий по истечении времени Get - событие отрабатывающее get-запросы к веб-приложению Post - событие отрабатывающее post-запросы к веб-приложению Типы установок Simple trig