TGViewer
Сочинский инвестор Сочинский инвестор @invesoch · 17 subscribers
Post #44 12
Сочинский инвестор Недавно у меня сломалась одна из функций в гугл-таблице, которая отвечала за форматирование строк при вставке в таблицу данных из отчета брокера 🤔 Проблема скорее всего очень простая, если знать язык программирования для работы с google apps scripts 😁 Но…
Идея с отдельным приложением не взлетела, потому что таблица в гугле уже очень удобная, и делать колесо с нуля быстро наскучило 😅

Оказалось, что в гугл-таблицах можно не просто подключить google apps scripts (далее GAS), но и настроить обновление скриптов для таблицы из удобной IDE/репозитория с кодом.

Поскольку в моем случае таблица уже существовала, как и GAS, то мне нужно было взять идентификатор скрипта и подключить clasp для разработки у себя на ноуте (локально, не на сайте с таблицей).

Вкратце сетап выглядит так:
- Husky + lint-staged прогоняют prettier и eslint перед каждым коммитом -> ошибки ловятся до релиза
- для тестов используется Jest на чистые функции (парсинг ответов API, форматирование, без выхода в интернет)

Релиз в нашем случае - загрузка обновлений из репозитория в GAS на сайте с гугл-таблицей.

Подключение к уже существующей Таблице проходит так:
1. Откройте гугл-таблицу
2. Расширения → Apps Script
3. Из URL скопируйте Script ID: https://script.google.com/home/projects/<SCRIPT_ID>/edit.
4. Локально создайте .clasp.json:
{ "scriptId": "<SCRIPT_ID>", "rootDir": "src" }

5. npm run pull — заберёт текущий код из GAS в src/. Дальше работаете локально.

Важные детали:
- один GAS-проект = одна гугл-таблица, потому что Script ID привязан к конкретному контейнеру. Для другой Таблицы — другой .clasp.json
- Apps Script V8 не поддерживает ES-модули (import/export), поэтому весь код — глобальный скоуп, приватность через IIFE. Переименовали функцию — проверьте все src/
- SpreadsheetApp, UrlFetchApp и т. п. в Jest не работают - их мокают или тестируют только в живом GAS после релиза
- локальная разработка без clasp невозможна; веб-редактор GAS — это просто ещё один клиент к тому же API. clasp — официальный инструмент от гугла.

———

Скорее всего, бОльшая часть информации тут будет выглядеть непонятно - и это нормально. На некоторые штуки я оставил ссылки, а остальное можно загуглить/закинуть в агента и получить работающий сетап ✅

Основное преимущество/удобство этого подхода: полноценная разработка с версионированием, тестами и релизами с помощью пары команд 👍
GitHub GitHub - google/clasp: 🔗 Command Line Apps Script Projects 🔗 Command Line Apps Script Projects. Contribute to google/clasp development by creating an account on GitHub.
  • ❤ 1
  • 👍 1
More from @invesoch
  1. Dec 30, 2025Недавно у меня сломалась одна из функций в гугл-таблице, которая отвечала за форматировани…
  2. Oct 17, 2025Недавно дорабатывал автоматизацию в таблице с инвестициями в гугле, и решил воспользоватьс…
  3. Aug 15, 2025https://vc.ru/invest/2159996-otkrytie-brokerskogo-scheta-v-tinkoff
  4. Aug 12, 2025#иис #дивиденды https://telegra.ph/Perehod-s-IIS-2-na-IIS-3-08-12
  5. Jun 9, 2025#портфель Когда я только начинал разбираться в фондовом рынке и доступных инструментах (ак…
  6. Jan 20, 2025#расходы https://telegra.ph/Kak-i-zachem-upravlyat-rashodami-01-20
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →