【问题标题】:Accessing spreadsheet in Google Script在 Google Script 中访问电子表格
【发布时间】:2012-10-20 16:53:57
【问题描述】:

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

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 恐怕你误解了这个问题......这是关于在 doGet/return 结构中独立于电子表格运行的 web 应用程序。如果你想证明你的观点,请展示一个完整的例子。
    • 那将是我的错误......我在互联网上看到了很多关于 getRange(...).getValue() 的错误,我想这是同样的问题......
    • “除非您的答案被编辑,否则您的投票被锁定......”我尝试编辑以回复您的投票,但即使我添加评论,我也不让我......
    • 不用担心...... 7 是一个不错的数字,但 6 毕竟也不错。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 2017-01-23
    相关资源
    最近更新 更多