Доступ к электронной таблице в Google Script
Я пишу google script поверх электронной таблицы.
Я хочу развернуть его как веб-приложение.
Он показывает некоторые значения.
К сожалению, с моим текущим кодом google напоминает мне:
TypeError: Невозможно вызвать метод "getSheetByName" из null.
Я не знаю, где ошибка.
Здесь код
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;
}
Ответы
Ответ 1
В автономных webapps вы не можете использовать getActiveSpreadsheet, потому что никто не использует его активно...
Вместо этого используйте SpreadsheetApp.openById('ID')
, вы можете получить идентификатор в URL-адрес вашей таблицы, как в этом примере:
https://docs.google.com/spreadsheet/ccc?key=0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc#gid=0
между key=
и #
, т.е. 0AnqSFd3iikE3d-------nZIV0JQQ0c1a3dWX1dQbGc
Ответ 2
Не нужно использовать идентификатор, просто попробуйте этот код (измените mygooglelocation на имя вашего Spreadsheet и диапазон ячеек. Очень хорошо для меня с картами google...
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('mygooglelocation');
var ss = SpreadsheetApp.getActive();
var mylocationInfo = ss.getRange("A2:B4").getValues();