Как создать гугл меню в Гугл Таблице
  • Ігор Білецький
  • 19.11.2021
  • Коментарі відсутні

Иногда удобно запускать обработку ваших данных с помощью отдельного пункта меню. Вы в нужный  момент кликаете на нужный пункт меню, который запускает ваш скрипт.

В данной статье разберем, какие виды пользовательского меню есть в Google Sheets и как их можно создать.

Итак, в таблицах можно создавать свое меню условно двух видов: основное и дополнительное.

Основное выводится как отдельная ссылка рядом со встроенными меню таблицы:

Пользовательское меню

Дополнительное – как подпункт меню “Расширения”:

Дополнительное меню

В качестве донора для скриншотов использована CRM “Клиент”.

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

Напишем необходимый скрипт в качестве примера.

function createMenu() {
//создаем основное меню
  const ui = SpreadsheetApp.getUi(); //получаем объект "Пользовательский интерфейс"
  const menu = ui.createMenu("Мое меню"); //название меню
  menu.addItem("Ввести доходы", "gotoInputIncome");
  menu.addItem("Ввести расходы", "gotoInputСosts");
  menu.addSeparator(); //разделитель
  menu.addItem("Синхронизировать статьи доходов", "updateIncome");
  menu.addItem("Синхронизировать статьи расходов", "updateCost");
  menu.addToUi();
}

Данным скриптом мы создали простое меню, без вложенных подменю. Единственно, что для наглядности использовали разделитель (addSeparator).

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

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

function createMenu() {
//создать меню с вложенными пунктами   
  const ui = SpreadsheetApp.getUi();
  const menuMain = ui.createMenu('Основное меню');

  const subMenu1 = ui.createMenu('Подменю1');
  const subMenu2 = ui.createMenu('Подменю2');
  const subMenu3 = ui.createMenu('Подменю3');

  subMenu1.addItem('👨' + "Добавить клиента", "loadFormAddClient");
  subMenu1.addItem('💀' + "Удалить выбранных клиентов", "delSelectClients");

  subMenu2.addItem("Добавить заказ для текущего клиента", "addNewOrder");
  subMenu2.addItem("Отобразить заказы текущего клиента", "showOrders");

  subMenu3.addItem("Добавить действие для текущего клиента", "addNewAction");
  subMenu3.addItem("Отобразить действия для текущего клиента", "showActions");

  menuMain.addSubMenu(subMenu1);
  menuMain.addSubMenu(subMenu2);
  menuMain.addSubMenu(subMenu3);
  menuMain.addSeparator();
  menuMain.addItem('\u{1F60E}' + "О таблице", "loadViewInfo");

  menuMain.addToUi();
}

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

Создать дополнительное меню можно похожим способом.

function createServiceMenu(){
//создаем подпункт меню в меню "Расширения"
  SpreadsheetApp.getUi()
  .createAddonMenu()
  .addItem("Включить автоматическую обработку гугл-форм", "createFrmTrigger")
  .addItem("Очистить листы введения данных из гугл-форм", "clearFrmInputSheets")
  .addToUi();
}

Отмечу, что подпункт меню в основном меню “Расширения” называется так же, как и название вашего проекта, которые содержит ваши скрипты.

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

Как правило, меню создается при открытии таблицы, используя специальное событие “Открытие таблицы”.

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

А на сегодня все.

Кстати, если наш сайт принес вам пользу и вы хотите сказать нам “Спасибо” и поддержать нас 🙏, то это можно сделать ЗДЕСЬ.

 
Рекомендую почитать:

 

Залишити коментар