«Библиотечное решение» на самом деле ваш лучший выбор. Это не так сложно, как кажется, но требует немного разовой работы.
Сначала вы создаете свой сценарий в одной электронной таблице (назовем ее главной таблицей).
Сохраните версию скрипта, выбрав Файл → Управление версиями в редакторе скриптов, и присвойте вашей версии имя:
Закройте это диалоговое окно и выберите « Файл» → «Свойства проекта» . Здесь найдите ключ проекта , который представляет собой случайную комбинацию символов:
Скопируйте или запишите ключ проекта.
Когда вы создали новую электронную таблицу и хотите повторно использовать сценарий, перейдите в редактор сценариев и нажмите Ресурсы → Библиотеки (если вы не сохранили новый сценарий, вам будет предложено сделать это сейчас).
В поле « Найти библиотеку» вставьте ключ проекта из мастер- проекта (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 для библиотек .