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