Google Apps Script умеет создавать меню, содержание которого определяет разработчик. Меню может быть создано для приложений Таблиц, Документы или Формы (режим редактирования). Отличительной особенностью является то, что нельзя передать параметры в вызываемую через меню функцию.
Принцип построения меню будет всегда одинаковый:
Создает пользовательское меню
Содержимое меню
Добавление текстового поля
Отчет о Форме
Принцип построения меню будет всегда одинаковый:
- Необходимо получить экземпляр среды пользовательского интерфейса Ui, позволяющий скрипту добавлять такие функции, как меню, диалоговые окна, боковые панели.
- Создать объект меню createMenu().
- Наполнить меню возможными элементами: пунктами меню addItem(), подменю addSubMenu(), разделителями addSeparator().
- Добавить меню в интерфейс, вызвав метод addToUi()
Для того, чтобы меню появлялось сразу после открытия файла, необходимо добавить функцию создания меню в простой триггер onOpen().
1. Пример простого приложения для Формы
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function onOpen(){ | |
FormApp.getUi().createMenu("Моё меню") | |
.addItem("Добавить текстовое поле", "addTextField") | |
.addItem("Об этой Форме", "aboutForm") | |
.addToUi(); | |
} | |
function addTextField(){ | |
var textField = FormApp.getActiveForm().addTextItem(); | |
textField.setTitle("Новое текстовое поле"); | |
textField.setHelpText("Дополнительный текст"); | |
} | |
function aboutForm(){ | |
var dic = [ | |
{ | |
"title": "Это тест", | |
"cmd": "isQuiz", | |
"val": undefined | |
}, | |
{ | |
"title": "Принимает ответы", | |
"cmd": "isAcceptingResponses", | |
"val": undefined | |
}, | |
{ | |
"title": "Сводка ответов опубликована", | |
"cmd": "isPublishingSummary", | |
"val": undefined | |
} | |
]; | |
var message = ""; | |
var form = FormApp.getActiveForm(); | |
for(var i = 0; i < dic.length; i++){ | |
message += dic[i].title + ": " + form[dic[i].cmd]() + "\n"; | |
} | |
FormApp.getUi().alert(message); | |
} |
Содержимое меню
Добавление текстового поля
Отчет о Форме
2. Пример простого приложения для Таблиц
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function onOpen(){ | |
SpreadsheetApp.getUi().createMenu("Моё меню") | |
.addItem("Добавить новый лист", "addNewSheet") | |
.addToUi(); | |
} | |
function addNewSheet(){ | |
SpreadsheetApp.getActive().insertSheet(); | |
} |
3. Пример простого приложения для Документов
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function onOpen(){ | |
DocumentApp.getUi().createMenu("Моё меню") | |
.addItem("Добавить новый абзац", "addNewParagraph") | |
.addToUi(); | |
} | |
function addNewParagraph(){ | |
DocumentApp.getActiveDocument().getBody().appendParagraph("Новый абзац"); | |
} |
Комментарии
Отправить комментарий