11

我正在电子表格上编写谷歌脚本。我想将其部署为 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;
}
4

2 回答 2

32

在独立的网络应用程序中,您不能使用 getActiveSpreadsheet,因为没有人在积极使用它...使用它SpreadsheetApp.openById('ID'),您可以在电子表格的 url 中获取 ID,如下例所示:

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

key=和之间#,即0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc

于 2012-10-20T17:02:08.597 回答
3

不需要使用 ID,只需尝试此代码(使用您的电子表格名称和单元格范围更改 mygooglelocation。使用谷歌地图对我来说工作得很好......

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('mygooglelocation');
  var ss = SpreadsheetApp.getActive();
  var mylocationInfo   = ss.getRange("A2:B4").getValues();
于 2013-08-18T10:13:43.050 回答