Библиотеки в Apps Script

от автора

Короткий пост про создание, подключение и использование библиотек в гугл скриптах. Больше нечего написать для вводной части. Го создавать

Создание библиотеки

Создаем новую гугл таблицу. Открываем редактор скриптов

В открывшемся редакторе напишем любую функцию, которая вам нравится. Я напишу функцию поиска значения в таблице по ключу.

function getInd(key,sheet,col) {     let lr = sheet.getLastRow();   let chat_id_arr = sheet.getRange(1,col,lr).getValues();   chat_id_arr = chat_id_arr.flat();   let ind = chat_id_arr.indexOf(key);      return ind; } 

Передаю собственно ключ, лист, на котором надо искать, и номер колонки.

Лично мне в функции все понятно, но будем предусмотрительными и задокументируем ее.

Для этого перед функцией прописываем комментарий:

/**  * Returns an index of the key in the sheet's column  *   * @param  {number} key The key for searching  * @param  {SpreadsheetApp.Sheet} sheet The variable containing link to the sheet  * @param  {number} col The number of the column for searching  * @return {number} ind index of the key in the table if table includes a header or index of position in the array  */ 

В первой строке говорим, что функция делает. Далее описываем параметры: тип параметра заключаем в фигурные скобки, за скобками — имя параметра, далее — описание.

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

В результате получаем что-то вроде этого:

/**  * Returns an index of the key in the sheet's column  *   * @param  {number} key The key for searching  * @param  {SpreadsheetApp.Sheet} sheet The variable containing link to the sheet  * @param  {number} col The number of the column for searching  * @return {number} ind index of the key in the table if table includes a header or index of position in the array  */ function getInd(key,sheet,col) {     let lr = sheet.getLastRow();   let chat_id_arr = sheet.getRange(1,col,lr).getValues();   chat_id_arr = chat_id_arr.flat();   let ind = chat_id_arr.indexOf(key);      return ind; }

Сохраняем код и деплоим.

Открывается окно New deployment. Здесь кликаем на шестеренку и выбираем Library

Добавляем описание и кликаем Deploy

После деплоя получаем ссылку и копируем ее.

Из полученного URL нам нужен только id (выделено в ссылке)

https://script.google.com/macros/library/d/1M_paTo_LwVBlOddB-agAG015Sa-zP0a7k2IipmDrxOnERQPKNyxP9EBY/1

Подключение библиотеки

Открываем гугл таблицу и скрипт, из которого хотим вызывать функции из созданной библиотеки. Во вкладке Libraries кликаем на «+»

Вставляем ТОЛЬКО id из URL в строку и кликаем Look up.

Если все успешно, видим сообщение и два дополнительных поля.

В последней строке указываем идентификатор нашей библиотеки, по которому мы будем к ней обращаться в коде.

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

При выборе функции сразу видим ее описание.

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

Надеюсь, для кого-то пост может быть полезным 🙂 Спасибо за внимание, жду фидбека.


ссылка на оригинал статьи https://habr.com/ru/articles/586744/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *