Създадох скрипт за 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 трябва да създаде елемент от менюто, когато се щракне върху елемента, се извиква Бинго. - person xman85   schedule 18.12.2012