Иногда удобно запускать обработку ваших данных с помощью отдельного пункта меню. Вы в нужный момент кликаете на нужный пункт меню, который запускает ваш скрипт.
В данной статье разберем, какие виды пользовательского меню есть в 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(); }
Отмечу, что подпункт меню в основном меню “Расширения” называется так же, как и название вашего проекта, которые содержит ваши скрипты.
В заключении отмечу, что ваше меню создается кодом. Оно не сохраняется, как обычные изменения в таблице. Его необходимо создавать каждый раз по новому.
Как правило, меню создается при открытии таблицы, используя специальное событие “Открытие таблицы”.
Про различные события и их использование описано в отдельной статье. Дополнительно рекомендую к прочтению обзорную статью с различными решениями, скриптами и прочими полезностями при работе с гугл таблицами.
А на сегодня все.
Рекомендую почитать:
- “10 бирж фриланса и удаленной работы для новичков и профи: список и рекомендации по заработку”
- “Доход на партнерских/реферальных программах: примеры и полезные советы”
- “Скачать футажи, видео, видеошаблоны, презентации, графику и т.д.: цифровые ресурсы без ограничений”