Google Sheets
Мотивация
Иногда пользователи хотят управлять отчетами через интеграцию с Google Sheets
Документация по query language: https://developers.google.com/chart/interactive/docs/querylanguage#language-clauses (opens in a new tab)
Административные настройки сервера
Для того, чтобы это заработало в основном конфигурационном файле меты должен быть заполнен блок googleShareAccount, где нужно вписать google service account настройки из формата json в формате yaml. После указания ваши пользователи смогут расшаривать файлы на ваш сервисный аккаунт и мета будет получать к ним доступ.
например у нас это аккаунт - robot-valera@devision-io.iam.gserviceaccount.com
Что нужно сделать
Вы должны использовать БД "gsheet". В ShardKey укажите id документа, через решетку имя листа, если имя листа не указано, то скорее всго будет взят первый созданный лист gid=0. Будте аккуратны, так как МЕТА не гарантирует, что google не изменит api и не станет отдавать другой лист по умолчанию.
Не забудьте, что пользователь должен либо сделать документ публичным, либо расшарить его на ваш сервисный аккаунт.
Ограничения
${pager}, ${sort} и комментирование строк как в БД не работают в скриптах google sheet
Частые проблемы
Дата в мете выводится неверно
Примените формат даты в google sheet к нужной колонке
В мете пустота вместо числа из ячейки или число нет то, хотя в google sheet все ок
Примените форма числа к нужным ячейкам и замените точки на запятые, если у у вас ru локаль
Пример
Получение всего контента листа с названием "Мой лист"
<script id="res" type="meta/sql" db-alias="gsheet" shard-key="1Wn2mET2s5hkhMvEJHXAXJu20wahJFgf11HxXYfBos8c#Мой лист">
select *
</script>