Как загрузить пользовательские функции сценариев Служб Google для использования в Листах Google из дополнения? - PullRequest
0 голосов
/ 01 апреля 2019

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

Это идея. Вопрос в том, как на самом деле этого добиться? Как вы говорите Sheets (или какой-либо другой подсистеме, которая контролирует подобные вещи): «Эй, посмотрите на этот файл .gs, полный функций? Загрузите его!»?

С этим связано дальнейшее усовершенствование, которое было бы здорово, если бы это было возможно, иметь возможность выгрузки блока функций, а именно: «Эй, посмотрите на этот файл, полный функций, которые вы загрузили 20 минут назад? Выгрузите их! «

Так есть ли механизм загрузки пользовательских функций из надстройки? Или это то, что мы увидим в Google Apps Script v6?

1 Ответ

0 голосов
/ 01 апреля 2019

На языке Google Sheets пользовательские функции называются пользовательскими функциями .

В Редакторах документов Google (Документы, Листы, Слайды) пользовательские меню не могут включать настоящие флажки, но вы можете создавать «динамические меню» со значком или символом, который показывает, какая функция включена / выключена, или использовать HTML. Сервисный диалог или боковая панель для использования реальных флажков.

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

function myCustomFunction(choosen){
  var localfunctions = {
    a:function localfunction1(){ return 'one result'},
    b:function localfunction2(){ return 'another result'}
  }
  return  localfunctions[choosen]()
}

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

Другой альтернативой является размещение пользовательских функций во внешнем проекте и включение его в качестве API. Подробнее о включении проекта скрипта приложений в качестве API см. https://developers.google.com/apps-script/api/how-tos/execute#step_1_deploy_the_script_as_an_api_executable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...