Меню

Скрипт для google таблиц

Google таблицы как база данных для веб-приложения. Часть 1

Кому-то тема данной статьи может показаться странной, но тем не менее такая возможность существует. Информация в сети есть, но она почти вся на английском и в разрозненном виде. Чтобы сложить картинку воедино мне с коллегой пришлось немало побродить по интернетам, поэтому я бы хотел для себя лично зафиксировать эту информацию в письменном виде.

В рамках цикла статей по данной теме, мы пошагово создадим небольшое приложение в виде чек-листа задач, в котором будут возможности создания, чтения, обновления и удаления элементов (CRUD). В качестве БД мы будем использовать Google Sheets, а в качестве серверного языка — Google Apps Script.

У этого подхода есть ряд своих минусов и ограничений, о которых я обязательно расскажу в процессе.

Создание скрипта и подключение к таблице

Для начала нам необходимо создать новую таблицу (сделать это можно из Google Drive, авторизовавшись под учетной записью Google). Назовем саму таблицу “tasklist”, а единственный лист — “tasks”.

Возвращаемся в Google Drive и создаем новый Google Apps Script (“Создать — Еще — Google Apps Script”). Назовем его также: “tasklist”.

Теперь переходим к написанию первого кода. В самом начале объявляем две переменные. Первая будет отвечать за подключение к таблице по URL. (Я не проверял, но скорее всего для успешного подключения вы должны являться и владельцем таблицы и владельцем скрипта).

Роутинг

Наш скрипт будет выполнять более чем одну функцию, ведь мы запланировали возможности создания, чтения, редактирования и удаления данных. Для этого мы должны как-то объяснить нашему скрипту, какое действие при каком запросе ему следует выполнять. За прослушивание запросов, отправленных методом POST у нас будет отвечать стандартная функция doPost (e), а для запросов, отправленных методом GET doGet (e), соответственно. Для маршрутизации запросов мы разместим внутри них switch, которые будут принимать переменную operation и в зависимости от того, какое мы передадим туда значение, тот или иной switch будет перенаправлять входящие запросы на соответствующие функции.

Добавление новых строк

Теперь мы готовы к тому, чтобы написать код, позволяющий с нашей таблицей конкретно взаимодействовать. К сожалению, Google Apps Script не поддерживает классические SQL команды, типа: INSERT, SELECT, UPDATE, DELETE, но все это сделать возможно немного иными путями и командами. Давайте посмотрим на примере функции, где для добавления новой строки мы будем использовать метод appendRow():

Получение строк из таблицы

Получить строки из таблицы можно двумя разными способами. В этой части мы рассмотрим самый простой из них, который подразумевает, что мы можем просто выбрать массив данных и вернуть его в виде JSON. Для этого мы будем использовать комбинацию методов getRange() и getValues().

Читайте также:  Создание таблицы стилей пример

Если требуется получить список задач с определенным статусом или за определенные даты, то мы можем пробежаться по полученному массиву в цикле и выбрать только нужные строки.

Первая публикация

Теперь мы готовы для публикации и первого теста. Отмечу, что первая публикация потребует чуть больше времени и действий, чем последующие обновления. Это связано с тем, что для работы нашего приложения в сети мы, как владельцы таблицы должны предоставить необходимые разрешения скрипту для работы с ней. Поехали.

  1. На верхней панели редактора скрипта выбираем пункты: “Опубликовать — Развернуть как веб приложение”.
  2. В поле “Как запускать приложение” выбираем “От моего имени (ваша почта)”.
  3. В поле “Кто имеет доступ к приложению” выбираем “Все, включая анонимных пользователей” и нажимаем “Развернуть”.
  4. Жмем “Предоставить разрешение”.
  5. Выбираем свой аккаунт.
  6. Жмем на ссылку “Дополнительные настройки”.
  7. Далее ссылка “Перейти на страницу “Название проекта” (небезопасно)”.
  8. На запрос “Приложение “Название проекта” запрашивает разрешение на доступ к вашему аккаунту Google” нажимаем “Разрешить”.
  9. И, наконец, увидев заветное “Этот проект развернут как веб-приложение”, сохраняем куда-нибудь текущий URL приложения и нажимаем на кнопку “ОК”.

Первая версия нашего приложения развернута и уже готова к работе. Проверить это можно, например, через Postman. Для этого в качестве адреса используем недавно полученный URL-адрес нашего приложения.

Как видим, запись в табличке появляется.

Удаление строк

Для удаления строк нам по аналогии с первой функцией требуется добавить case в наш switch внутри doPOST(e) и написать соответствующую функцию. Поехали:

Теперь создадим функцию, отвечающую за удаление строк. Чтобы удалить строку, нам для начала необходимо ее найти. В нормальных СУБД для этого используются уникальные id, которые автоматически присваиваются строкам при добавлении, и по которым можно впоследствии однозначно найти элементы. В нашем случае такой роскоши не предусмотрено. Конечно, можно придумать какой-нибудь выход и, например, при добавлении строк генерировать уникальный хеш-код на основе текущей даты и еще чего-нибудь, но в рамках данной статьи мы будем считать, что название задачи должно быть уникальным. По нему мы и будем искать элементы, пробегаясь в цикле по нашим записям, и удалять записи при помощи метода deleteRow().

Обновление строк

Принцип тот же. Начинаем с doPost(e) и далее добавляем соответствующую функцию.

Алгоритм обновления данных похож на тот, что мы использовали при удалении элементов. Только в случае обновления нам потребуются два дополнительных параметра. Первый будет передавать новое значение, на которое мы будем заменять старое, а второй будет подсказывать нам в какой колонке это следует сделать. За обновление данных отвечает комбинация методов getRange() и setValue().

Читайте также:  Русское лото 1383 тираж проверить билет

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

Если мы сохраним изменения и захотим протестировать написанный код, отправив запросы на удаление или обновление через Postman, то… ничего не произойдет, т.к. мы не переопубликовали наш проект. Чтобы опубликовать проект с последними изменениями делаем следующее:

  1. На верхней панели редактора скрипта выбираем пункты: “Опубликовать — Развернуть как веб приложение”.
  2. В поле “Версия проекта” выбираем “Новый” и нажимаем на кнопку “Развернуть”.
  3. Описываем изменения (необязательно).
  4. В окне “Этот проект развернут как веб-приложение” нажимаем на кнопку “ОК”.

Источник

Как я слежу за акциями в гугл-таблице: три простых способа

Я использую гугл-таблицы для портфеля инвестиций, потому что с ними проще вести учет.

Михаил Шардин кандидат технических наук Профиль автора

Упрощение связано с тем, что можно в автоматическом режиме получать данные о текущих ценах и других параметрах активов, которые публикуются открыто.

Для этого я комбинирую три бесплатных сервиса, которые подтягивают данные с разных бирж с помощью API. В статье расскажу, как настроить их под свои нужды.

Что за АПИ

В большинстве случаев данные с бирж передаются через программный интерфейс, называемый API — application programming interface. Грубо говоря, это инструмент, благодаря которому одна программа начинает говорить на одном языке с другой. В нашем случае мы используем API финансовых бирж для «дружбы» с гугл-таблицами.

API Московской биржи

Для чего. Получить информацию о российских акциях и облигациях.

Как это работает. У Московской биржи есть API, который позволяет видеть любую информацию с российской биржи внутри гугл-таблиц. Например, можно получать имена инструментов, цены закрытий, даты оферт и другие параметры.

Работа этой функции полностью зависит от сервера Московской биржи. Если биржа поменяет формат выдачи, организует какие-то другие режимы торгов или изменит что-то в существующей системе, то для корректной работы формул потребуется их доработка.

Такая выборочная информация с биржи пригодится для разных целей. Можно создать гугл-таблицу, чтобы покупать облигации с хорошей ликвидностью, — об этом я уже рассказывал. А можно следить за параметрами бумаг в собственном портфеле — например, за датами оферт. Это поможет не пропустить важную дату, если хотите принять участие в досрочном погашении.

Еще таблица пригодится, если вас не устраивают существующие сервисы учета — Intelinvest и Investing.com.

В таблице-примере к этой статье я привел несколько полезных параметров ценных бумаг. Вот что она умеет:

  • подтягивать название бумаги по идентификатору — столбец «Названия акций и облигаций»;
  • показывать текущие курсы — столбец «Цены акций и облигаций»;
  • получать даты выплат облигаций — столбец «Даты купона и значения для облигаций»;
  • получать дивиденды — столбец «Даты и значения дивиденда для акций»;
  • видеть возможность досрочного погашения облигаций — столбец «Даты оферт».
Читайте также:  Футбольный клуб Реал Сарагоса 2020 2021

Что делать? 30.06.17

Список далеко не полный, ведь на Мосбирже огромное количество параметров, включая срочный рынок и валюты.

Источник



Скрипты в Google spreadsheets

image

Не так давно стал доступен сервис скриптов в таблицах Google для персональных аккаунтов (gmail).
googledocs.blogspot.com/2010/03/apps-script-gallery-for-google.html
Краткое описание
www.google.com/google-d-s/scripts/scripts.html
Кроме этого, непосредственно из таблиц стал доступен сервис публикации скриптов в галерею.

Теперь мы можем создавать скрипты для Google Spreadsheets, загружать готовые, публиковать, обмениваться с другими пользователями.
Скрипты имеют богатый набор возможностей. Мы можем использовать всё управление, доступное в сервисах Google.
www.google.com/google-d-s/scripts/overview.html

Результатом работы скрипта, например, могут быть:

  • новая функция, отсутствующая в стандартном наборе;
  • значение, возвращаемое веб сервисом, в том числе, SOAP, WSDL и другие;
  • управление другими сервисами, например, сайтом, календарем, почтовой рассылкой;
  • автоматическое заполнение таблиц (непосредственное управление нашими spreadsheets);
  • создание пользовательских интерфейсов (custom spreadsheets UI).

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

Расчет расстояния между точками по большой дуге

Прямое геокодирование
Вернуть KML по названию места

Обратное геокодирование
Вернуть адрес по координатам

Источник

Dev Google Apps Script для Docs в примерах

Favorite В закладки

Google Apps Script для Docs в примерах

Изучаем основные приемы взаимодействия Google Apps Script с Документами.

Это наша вторая статья про Google Apps Script — подвиде JavaScript, обогащенном классами и методами для работы с сервисами Google. В первой четыре готовых рецепта, код которых можно вставить в редактор в практически неизменном виде, запустить и мгновенно получить PROFIT.

У этого материала несколько другая задача. Приведенные ниже примеры кода, предназначены скорее для обучения и размышления, чем для быстрого решения проблем. На основе приемов, использованных в этих скриптах можно составить множество классных программ для эффективного решения задач автоматизации работы с Docs. Чтобы не повторяться, для ознакомления с основами использования GAS рекомендуем прочитать статью 4 лайфхака Gmail и Google Apps Script.

Автоматическая генерация документов

Предположим, что вам нужно собрать отзывы о каком-либо событии от всех своих коллег и чтобы один сотрудник не мог видеть записи другого. Один из способов это сделать — создать для каждого человека файл в Google Docs и открыть доступ ему одному.

Для этого создаем новую таблицу в Google Docs, в первый столбец запишем фамилии сотрудников, а во второй их почтовые адреса. Проверяем информацию и запускаем код.

Favorite В закладки

Источник