Как экспортировать / импортировать скрипт Google Apps в виде файла в новую электронную таблицу?

13

Боюсь, у этого ответа может быть очевидный ответ, но я опрокидываю голову и не могу его найти!

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

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

Есть идеи?

cregox
источник

Ответы:

9

«Библиотечное решение» на самом деле ваш лучший выбор. Это не так сложно, как кажется, но требует немного разовой работы.

Сначала вы создаете свой сценарий в одной электронной таблице (назовем ее главной таблицей).

Сохраните версию скрипта, выбрав Файл → Управление версиями в редакторе скриптов, и присвойте вашей версии имя:

Снимок экрана: диалоговое окно "Управление версиями"

Закройте это диалоговое окно и выберите « Файл» → «Свойства проекта» . Здесь найдите ключ проекта , который представляет собой случайную комбинацию символов:

Снимок экрана: диалоговое окно "Project Proerties"

Скопируйте или запишите ключ проекта.

Когда вы создали новую электронную таблицу и хотите повторно использовать сценарий, перейдите в редактор сценариев и нажмите Ресурсы → Библиотеки (если вы не сохранили новый сценарий, вам будет предложено сделать это сейчас).

В поле « Найти библиотеку» вставьте ключ проекта из мастер- проекта (1) и нажмите « Выбрать» (2):

Снимок экрана: диалоговое окно "Управление библиотеками"

Это заполнит список вашим главным сценарием. Дайте ему более понятное имя (3) и включите режим разработки (4) (это позволит вам отлаживать библиотеку). Выберите самую последнюю версию вашего скрипта (5).

Теперь вы можете использовать функции из вашей библиотеки в новом скрипте. Просто добавьте любые имена функций к имени, указанному вами в (3), чтобы, если вы определили свою библиотеку как MyLibraryи в вашей библиотеке есть функция, myFunctionкоторую вы хотите вызвать, вы вызываете MyLibrary.myFunction().

Когда вы хотите обновить свою библиотеку, вы просто делаете это и сохраняете файл. Любые сценарии, которые зависят от библиотеки, увидят обновленный код библиотеки.

Я просто попробовал это упражнение в качестве подтверждения концепции:

  • Настройте библиотеку с функцией: function myFunction() {return "Foo"}
  • Включите его в другой скрипт, идентифицируя библиотеку как MyLibrary
  • Вызывается функция библиотеки с Logger.log(MyLibrary.myFunction)
  • Журнал отображает Foo
  • Отредактировал библиотеку: function myFunction() {return "Bar"}
  • Перезапущен включающий скрипт, теперь отображается журнал Bar

Так что это действительно довольно просто после начальной настройки. Посмотрите эту папку на моем Google Диске для реального примера.

Также см. Документацию Google для библиотек .

Видар С. Рамдал
источник
2
Я думаю, что я не был достаточно ясен в своем вопросе (у меня была ссылка, показывающая, как делать библиотеки, я прочитал все свои ссылки и многое другое. Я думаю, что я прочитал все документы), и я пропустил важный информация, извините за это. Я знаю, что это не так уж сложно сделать, но моя главная цель здесь - поделиться сценарием, и это достаточно сложно, с кем бы я поделился. Простое должно быть простым. Я отредактирую вопрос. Но спасибо за все внимание! Кроме того, я ничего не вижу в вашей папке. Всего 2 пустых файла. Даже после их открытия.
Cregox
Ах, я полностью пропустил вашу ссылку на и без того отличный ответ @ JacobJanTuinstra о том, как создавать библиотеки. Виноват. Вы прочитали документы, без сомнения. Но я не уверен, что понимаю, что вы подразумеваете под акцией . Хотите поделиться своим сценарием с другим пользователем?
Видар С. Рамдал
Что касается файлов в моей папке, да, они кажутся пустыми. Но это потому, что электронные таблицы не заполнены - им ничего не нужно, кроме скриптов. Чтобы использовать мои электронные таблицы, вы должны щелкнуть ссылку выше, нажать на один из (пустых) файлов, затем Открыть , затем Файл -> Сделать копию , чтобы иметь копию на вашем собственном Google Диске. Это также следует скопировать вместе с прикрепленными файлами скриптов.
Видар С. Рамдал
Хорошо, после создания копии я наконец смог увидеть сценарий. Все же там нет ничего простого. Да, поделись с другим пользователем. Copy & Paste работает отлично, и это достаточно просто, но это слишком капризно. Я все еще должен вставить в файл, а другой пользователь скопировать из него! Я с трудом могу понять, почему мы не можем использовать файлы ...
cregox
2

Короткий ответ

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

объяснение

Галерея скриптов была заменена надстройками, которые были добавлены в 2014 году.

Чтобы опубликовать дополнение, вы должны заплатить 5 долларов, чтобы иметь возможность опубликовать дополнение в Интернет-магазине Chrome. Если вы сделаете надстройку общедоступной, она должна быть проверена Google перед тем, как сделать ее общедоступной, но если вы сделаете ее закрытой для группы Google, она будет доступна через несколько минут.

Альтернативой публикации вашего дополнения является использование функции тестирования дополнения, но у нее есть некоторые ограничения, такие как невозможность «проверить» триггеры, которые в зависимости от вашего сценария могут быть существенным ограничением или нет.

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

Преимущество создателя дополнения может заключаться в том, что пользователи дополнения не смогут просматривать код дополнения из самой надстройки.

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

Ссылки

Рубена
источник
2

Вы должны попробовать Google Clasp, о котором идет речь

Идентификатор диска родительского файла, с которым связан созданный проект скрипта

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

  • Извлечь: извлекает проект из предоставленного или сохраненного идентификатора скрипта. Обновляет локальные файлы с помощью проекта Apps Script.
  • Push: Force записывает все локальные файлы на сервер управления сценариями
  • Создать: создает новый проект сценария (с необязательным идентификатором родительского проекта. Идентификатор диска родительского файла, с которым связан созданный проект сценария)
А. Массон
источник
2
спасибо за этот вклад, Массон! Я нахожу это довольно интересным, даже если я не смогу проверить это в ближайшее время. :) В любом случае, не могли бы вы подробнее рассказать о том, как решить вопрос с помощью застежки? Это хорошая идея, чтобы сохранить ответы для последующего использования в случае, если ссылки будут повреждены или существенно изменятся.
Cregox
1

На полпути скачивать файлы из вашего проекта.

Решение № 1

Я нашел инструмент для достижения этой цели:

http://googleappsscriptexport.trototype.com/, автор kerem tiryaki

  • Вы должны дать доступ к своему диску
  • чтобы найти скрипт, вам нужно скопировать ключ скрипта:

введите описание изображения здесь

Недостаток

GoogleAppsScriptExporterForAll теперь имеет доступ к вашей учетной записи Google (придется удалить ее вручную)

Решение № 2

Я также использую это дополнение для интеграции скриптов Git-Hub и Google Sheets: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

После установки этого дополнения вам необходимо:

  1. Войдите и отправьте код на GitHub (кнопка появится в редакторе)
  2. Загрузите ваш код с GitHub, если это необходимо.
  3. Вы также можете извлечь проект из GitHub (обычный пользователь не сделает этого).

Недостаток

Пользователь по-прежнему должен открыть редактор сценариев и скопировать код.

преимущества

  1. Быстрая реализация. Не надо играть с дополнениями
  2. Легко для пользователя, чтобы скопировать один скрипт, а не несколько файлов.

Следующие шаги

Следующие шаги для меня будут:

  1. Слить мои *.jsфайлы в один файл. Успешно использовал https://jscompress.com/ =)
  2. Совместное использование одного файла с пользователями (публикация скрипта на GitHub или отправка их по электронной почте напрямую)
Макс Махров
источник