2017-12-14 4 views
0

Von einem vorhandenen GoogleSheet versuche ich, eine Bildschaltfläche zu erstellen und ein kleines Skript anzuhängen, das ein anderes GoogleSheet mit der ID des Ziel-Google-Blattes öffnet. Ich habe den Image-Button gemacht und weiß, wie man ein Funktionsskript anfügt.Öffnen Sie Google-Blatt auf Client-Seite mit Google Apps-Skript

Ich habe versucht, die folgenden:

function Open2017File() { 
 
    var ss = SpreadsheetApp.OpenById("1mTz8YaH_lu6R3icbSCpgx0Oy-AB4a98thDPP0m1xNhU"); 
 
    Logger.log(ss.getName()); 
 
}

jedoch bei weiterer Lektüre ich dies nur die Datei öffnet für Server-Side-Scripting gefunden haben ...

Kann mir jemand helfen indem Sie mir den entsprechenden Befehl zum Öffnen des Google-Blatts auf der Clientseite mitteilen. ?

Vielen Dank im Voraus

+1

Es gibt keinen Befehl dafür. Dies erfordert eine URL, auf die Sie Zugriff haben. Also etwas in deinem Konto oder mit dir geteilt. Nicht viel anders als nur zu Ihrem Konto zu gehen und die Datei zu öffnen. – Cooper

+0

Ich habe eine GoogleDoc-URL ... welchen Code kann ich zum Öffnen des Dokuments verwenden? (Denken Sie daran, dass ich es an ein Button-Bild anhängen möchte. Thxs – mond007

+1

Ich würde einfach die URL auf eines meiner Lesezeichen setzen. Keine Codierung erforderlich. – Cooper

Antwort

1

du die eingebaute in Htmlservice und Scriptlets erreichen kann durch die Verwendung. Gehe zu 'Datei' - 'Neu' - 'Html-Datei' und füge deinem Projekt eine HTML-Seite hinzu. Ich nannte meine "Sidebar". Die Notation '<?! =?>' Wird verwendet, um Variablen auszugeben, die mit '.gs' Code an html übergeben werden. Das Ausrufezeichen '!' zeigt an, dass alles zwischen diesen Symbolen direkt auf die Seite gedruckt wird.

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body> 
    <a href="<?!= spreadsheet.url ?>"> Open spreadsheet <?!= spreadsheet.name ?> </a> 
    </body> 
</html> 

Der folgende Code fügt das benutzerdefinierte Menü in die Tabelle - klicken Sie ‚sidebar‘ Menüoption führt die ‚showSidebar()‘ Funktion. Innerhalb dieser Funktion sollten Sie zuerst die Instanz der HtmlTemplate-Klasse für die Seitenleiste abrufen. Beachten Sie, dass es sich bei diesem Punkt nur um ein JS-Objekt handelt, für das wir benutzerdefinierte Eigenschaften definieren können. Hier kommen die Scriptlets ins Spiel.

Der nächste Schritt besteht darin, die URL und den Dateinamen des 2. Blattes durch Aufrufen der Funktion 'getSpreadsheet (id)' zu erhalten und die Variablen an HtmlTemplate zu übergeben.

Schließlich Aufruf der Methode evaluate() auf der Vorlage wird die Vorlage in HtmlOutput-Objekt konvertieren bereit, von ShowSidebar() -Methode verbraucht werden. Eigenschaften, die wir auf die Vorlage übergeben wird auf die resultierende HTML gedruckt werden:

var ui = SpreadsheetApp.getUi(); 
var spreadsheetId = YOUR_ID_HERE; 

function onOpen() { 

ui.createMenu('User options').addItem('Show sidebar', 'showSidebar').addToUi(); 

} 

function showSidebar() { 

var template = HtmlService.createTemplateFromFile('sidebar'); 
var spreadsheet = getSpreadsheet(spreadsheetId); 

    template.spreadsheet = {  //passing data to the template 
    url: spreadsheet.getUrl(), 
    name: spreadsheet.getName() 
    }; 




    ui.showSidebar(template.evaluate()); //evaluate runs the scriptlets 
             //and creates the fully-formed DOM tree 

} 

function getSpreadsheet(id) { 


    return SpreadsheetApp.openById(id); 


} 

Natürlich können Sie durch die Zuordnung ‚showSidebar‘ Funktion auf die Schaltfläche in der Tabelle für einen leichteren Zugang eine Verknüpfung erstellen können.

Verwandte Themen