Ich entwickle gerade eine Google Apps Script-Anwendung und möchte mit der OnOpen-Funktion eine Benutzeroberfläche hinzufügen. Aber das Problem ist, dass die OnOpen-Funktion nur als Addon oder als gebundenes Skript in der Spreadsheet oder Doc-Datei funktioniert.Automatisch Google Apps Script UI öffnen
Meine Frage ist, wie kann ich den Apps Script Code als eigenständige Anwendung für neue hinzugefügte Dateien ausführen?
Ich habe es bisher mit zeitbasierten Trigger versucht, aber App-Skript erstellt zu viele Trigger. Gibt es eine bessere Möglichkeit, die onOpen-Funktion für neu hinzugefügte Dateien auszulösen?
Hier ist mein Code so weit:
function tim(){
ScriptApp.newTrigger("createSpreadsheetEditTrigger")
.timeBased()
.everyMinutes(1)
.create();
}
function createSpreadsheetEditTrigger() {
var files = DriveApp.getFoldersByName("Development Lab").next().getFoldersByName("AppsScriptProgramm").next().getFoldersByName("Excel").next().getFiles();
while (files.hasNext()){
file = files.next();
ScriptApp.newTrigger('onOpen')
.forSpreadsheet(SpreadsheetApp.openById(file.getId()))
.onOpen()
.create();
}
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Metadata')
.addItem('Open', 'openDialog')
.addToUi();
}
function openDialog() {
var html = HtmlService.createHtmlOutputFromFile('Index')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(900)
.setHeight(400);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Metadaten zum Dokument: '+ SpreadsheetApp.getActive().getName());
}
nennen Sie es nicht onOpen. dh onTriggerOpen –