2012-10-20 56 views
11

私はスプレッドシートの上にGoogleスクリプトを書いています。 私はそれをWebアプリケーションとして展開したいと思います。 いくつかの値が表示されます。 は残念ながら、私の現在のコードで、Googleは私を思い出させる:Googleスクリプトのスプレッドシートへのアクセス

TypeError: Cannot call method "getSheetByName" of null.

私は間違いがある見当がつかない。ここで

は誰が積極的にそれを使用していない... 使用SpreadsheetApp.openById('ID')ではなく、あなたがこの中のようなスプレッドシートのURLにIDを取得することができますので、あなたがgetActiveSpreadsheetを使用することはできませんスタンドアロンのWebアプリケーションでコード

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; 
} 

答えて

28

です例:key=#

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

、すなわち0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc

+0

ありがとうございます!!!!!!!!!!!!! それは動作します! 優秀な例! – user1761850

+0

IDを使用する必要はありません私の解決策を参照してください... –

+0

:) "あなたが不明な場合、私の答えをdownvoteなぜですか?再考してください..."オハイオ州私の神 –

2

IDを使用する必要はありません。このコードを試してください(mygooglelocationをスプレッドシートの名前とセル範囲で変更してください)。 Googleマップでうまくいきます...

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

質問が間違っていると思います...これは、スプレッドシートとは独立して動作するwebアプリケーションに関するものです。doGet /リターン構造。あなたのポイントを証明したい場合は、完全な例を示してください。 –

+0

これは私の間違いです...私はgetRange(...)。getValue()についてインターネット上で多くのエラーを見ました。同じ問題だと思います... –

+0

もしあなたがわからないのなら、私の答えは?再考してください... –

関連する問題