Erweitern Sie die Benutzeroberfläche von Google Spreadsheets mit einer Google Web App

Ich habe ein Skript für Google Spreadsheets erstellt. Dieses Skript fügt lediglich einen neuen Menüeintrag hinzu, wie hier beschriebenBenutzerdefinierte Menüelemente in einer Tabelle. Anschließend stelle ich dieses Skript als Webanwendung bereit und möchte, dass alle Benutzer, die die App installieren, den neuen Menüeintrag sehen können. Und ich stecke an diesem Punkt fest.

Wenn Sie ein Skript als Webanwendung bereitstellen, verlieren die Funktionen von onOpen nach meinem Verständnis ihre Bedeutung. Also, in doGet erstelle ich einen benutzerdefinierten Trigger für das onOpen-Ereignis, hänge den myOnOpen-Handler daran an und füge in myOnOpen ein Menüelement hinzu, das jedoch nicht angezeigt wird.

Hier ist mein Code:

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!");
};

Wenn ein Benutzer, der die App installiert hat, die Tabelle "Neues Blatt" öffnet, wird "Mein Menü" nicht angezeigt. Was mache ich hier falsch? Warum wird der Menüpunkt nicht angezeigt? Letztendlich möchte ich eine Web-App erstellen, die die Benutzeroberfläche von Google Spreadsheets um zusätzliche Menüs und Dialogfelder erweitert.

Jeder Rat ist willkommen. Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage