0

in setActiveSpreadSheet doc das Beispiel ist ganz klar offen zu:wie programmatisch eine neue Tabellenkalkulation von Google-Skripte

// The code below will make the spreadsheet with key "1234567890" the active spreadsheet 
var ss = SpreadsheetApp.openById("1234567890"); 
SpreadsheetApp.setActiveSpreadsheet(ss); 

aber die Umsetzung, dass in meinem Google-Skripte, geschieht nichts (nicht einmal eine Fehlermeldung). Ideen?

Update

Basierend auf den Antworten unten, es ist klar, dass der obige Code keine Auswirkung auf die UI hat. Ich habe versucht, dies zu tun:

function goToEstimate(sheetId) 
{ 
    window.open('https://docs.google.com/spreadsheets/d/'+sheetId); 
} 

aber dann bekam ich diesen Fehler:

ReferenceError: "window" is not defined. 

Gibt es eine Möglichkeit, die Javascript globale Fenstervariable für den Zugriff auf in Google Scripts?

+1

Noch einmal: Apps Script ist Serverseite. Es kennt kein "Fenster" oder "Dokument". –

Antwort

1

Ein Google Apps-Skript kann keine Tabellenkalkulation im Browser eines Clients anzeigen, da es sich um ein serverseitiges Skript handelt.

Die Methode openById gibt einen Punkt in einer Tabelle zurück, der es ermöglicht, mit der Tabelle aus dem Apps-Skript zu bearbeiten. Das bedeutet "eine Tabelle öffnen" bedeutet für ein Skript. Diese Aktion hat keine Auswirkungen auf die Benutzerschnittstelle.

Die Methode setActiveSpreadsheet ist ziemlich nutzlos; Es ändert nur, welche Tabelle zurückgegeben wird, wenn ein Skript getActiveSpreadsheet aufruft.

Eine Methode, die Auswirkungen auf die Benutzeroberfläche hat, ist setActiveSheet: Wenn sie auf eine Tabelle angewendet wird, die ein Benutzer in ihrem Browser geöffnet hat, kann die Methode ändern, welche Registerkarte/Blatt der Tabelle dem Benutzer zugewandt ist.

+0

siehe Update auf Frage – abbood

0

Ich denke, Sie können nicht einfach neue Registerkarte im Browser öffnen und neue Tabelle nach Skript öffnen. Das liegt daran, dass das Skript Browser nicht steuern kann. Aber Sie könnten Daten aus geschlossener Kalkulationstabelle erhalten:

function openSheetTest() { 
    var newWs = SpreadsheetApp.openById('1234567890'); 
    var sheet = newWs.getSheetByName('Sheet1'); 

    var data = sheet.getDataRange().getValues(); 

    Logger.log(data); 
} 

Es gibt eine Klasse Browser in G-Tafeln. Und alles, was wir für jetzt tun können, ist, Promts oder MsgBoxes zu machen.

+0

siehe Update auf Frage – abbood

Verwandte Themen