在Google Script中访问电子表格

时间:2012-10-20 16:53:58

标签: google-apps-script

我正在电子表格上写一个谷歌脚本。 我想将其部署为Web应用程序。 它显示了一些值。 不幸的是,使用我目前的代码,谷歌提醒我:

  

TypeError:无法调用null的方法“getSheetByName”。

我不知道错误在哪里。

这是代码

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

2 个答案:

答案 0 :(得分:31)

在独立的webapps中,你不能使用getActiveSpreadsheet,因为没有人主动使用它... 请改用SpreadsheetApp.openById('ID'),您可以在电子表格的网址中获取ID,如下例所示:

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

介于key=#之间,即0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc

答案 1 :(得分:2)

不需要使用ID,只需尝试此代码(使用您的电子表格名称和单元格范围更改mygooglelocation。使用Google地图为我工作非常好......

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