2012-10-20 15 views
11

Ich schreibe ein Google-Skript oben auf einer Tabelle. Ich möchte es als Web-App bereitstellen. Es zeigt einige Werte. Leider mit meinem aktuellen Code, erinnert google mich:Zugriff auf eine Tabelle in Google Script

TypeError: Cannot call method "getSheetByName" of null.

Ich habe keine Ahnung, wo der Fehler ist.

Hier ist der Code

function doGet(e) { 
    var app = UiApp.createApplication().setTitle('Details'); 
    var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; 
    var dataFromCell = ss.getRange("B4").getValue(); 

    var mypanel = app.createVerticalPanel(); 
    var label = app.createLabel(dataFromCell); 

    app.add(mypanel); 
    app.add(label); 

    return app; 
} 

Antwort

28

Im Standalone-Webapps Sie nicht getActiveSpreadsheet verwenden können, weil niemand sie aktiv nutzt ... Verwenden SpreadsheetApp.openById('ID') stattdessen Sie die ID in der URL Ihrer Tabelle wie in dieses nicht erhalten Beispiel:

https://docs.google.com/spreadsheet/ccc?key=0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc#gid=0 

zwischen key= und #, dh 0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc

+0

Vielen Dank !!!!!!!!!!!!! Es funktioniert! Ausgezeichnetes Beispiel! – user1761850

+0

keine Notwendigkeit, ID zu verwenden siehe meine Lösung ... –

+0

:) "Wenn Sie unsicher sind, warum dann meine Antwort ablehnen? Bitte überdenken ..." oh mein Gott –

2

Sie müssen die ID nicht verwenden, probieren Sie einfach diesen Code aus (ändern Sie mygoogleLocation mit Ihrem Tabellenkalkulationsnamen und Zellenbereich. Arbeiten sehr gut für mich mit Google Maps ...

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('mygooglelocation'); 
    var ss = SpreadsheetApp.getActive(); 
    var mylocationInfo = ss.getRange("A2:B4").getValues(); 
+1

Ich fürchte, Sie missverstanden die Frage ... das war über Webapps, die unabhängig von der Tabelle in einem doGet laufen/Rückgabestruktur. Wenn Sie Ihren Punkt beweisen möchten, zeigen Sie bitte ein vollständiges Beispiel. –

+0

dann wird mein Fehler ... Ich sah viele Fehler im Internet über getRange (...). GetValue() und ich nehme an, es ist das gleiche Problem ... –

+0

Wenn Sie unsicher sind, warum meine Antwort dann downvote? Bitte überdenken ... –

Verwandte Themen