Я создал сценарий для таблиц Google, этот сценарий просто добавляет новый пункт меню, как описано здесь Пользовательское меню Элементы в электронной таблице. Затем я развертываю этот сценарий как веб-приложение и хочу, чтобы все пользователи, устанавливающие приложение, могли видеть новый пункт меню. И я застрял на этом этапе.
Насколько я понимаю, когда вы развертываете скрипт как веб-приложение, функции onOpen теряют смысл. Итак, внутри doGet я создаю настраиваемый триггер для события onOpen, прикрепляю к нему обработчик myOnOpen, а внутри myOnOpen я добавляю пункт меню, но этот элемент не отображается.
Вот мой код:
function doGet() {
var newSheet = SpreadsheetApp.create("new sheet");
var newId = newSheet.getId();
ScriptProperties.setProperty('newId', newId);
ScriptApp.newTrigger("myOnOpen")
.forSpreadsheet(newId)
.onOpen()
.create();
};
function myOnOpen() {
var newId = ScriptProperties.getProperty('newId');
var sheet = SpreadsheetApp.openById(newId);
var entries = [ { name : "Show bingo", functionName : "Bingo" } ];
sheet.addMenu("My Menu", entries);
};
function Bingo() {
Browser.msgBox("Bingo!");
};
Итак, когда пользователь, установивший приложение, открывает электронную таблицу «новый лист», он не видит «Мое меню». Что я здесь делаю не так? Почему пункт меню не отображается? В конце концов, я хочу создать веб-приложение, которое расширяет пользовательский интерфейс Google Spreadsheets дополнительными меню и диалоговыми окнами.
Любые советы приветствуются. Спасибо!
sheet.setColumnWidth(1, 200)
), но я не могу создавать там пользовательские меню. Шаблон не работает для меня, я хочу, чтобы пользователи загружали свои файлы .xls, и я хочу добавить пользовательский интерфейс для редактирования этих файлов. - person xman85   schedule 18.12.2012MailApp.sendEmail()
. myOnOpen должен создать элемент меню, при щелчке по элементу запускается Bingo. - person xman85   schedule 18.12.2012