使用绑定到Sheets的webapp的getActiveSpreadsheet失败

时间:2016-07-14 03:08:33

标签: google-apps-script google-sheets

奇怪的事情正在发生。也许有人可以解释它或者可能有一个错误。我正在编写一个从绑定到电子表格的Apps脚本运行的webapp。当我使用openById()打开电子表格时,webapp正常运行,但不是getActiveSpreadsheet()。当我加载页面时,我收到此消息," TypeError:无法调用方法" getSheetByName"为null。 (第11行,文件"代码")"。它的行为就像它没有绑定到电子表格。

但是,如果我手动运行doGet(),我不会收到错误。从日志表中成功提取数据。这是我的代码...当我评论第1行并取消注释第2行时,它完美无缺。提前致谢。

    function doGet() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log');
      //  var sheet = SpreadsheetApp.openById('abc123def456').getSheetByName('Log');
      var data = sheet.getDataRange().getValues();
      var t = HtmlService.createTemplateFromFile('index');
      t.data = data;
      var evaluatedTemplate = t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
      return evaluatedTemplate;
    }

1 个答案:

答案 0 :(得分:0)

删除您的' doGet()'功能。如果您的脚本是附加组件,则它不需要doGet()。而是使用onInstall,onOpen然后使用HTML服务打开页面。

您正在发送谷歌混合信号。

绑定脚本和Web应用程序是不同的。

https://developers.google.com/apps-script/guides/bound