【问题标题】:Google App Script getRange() method cannot be invoked with nullGoogle App Script getRange() 方法不能用 null 调用
【发布时间】:2016-12-16 22:54:11
【问题描述】:
function doGet(){

  try{

    var html = HtmlService.createTemplateFromFile('index').evaluate().setTitle('Web App').setSandboxMode(HtmlService.SandboxMode.NATIVE);
    var x = t;

  } catch(error){

    var errorSheet = SpreadsheetApp.openById('...MySpreadSheetID...').getSheetByName('errors');
    var cell = errorSheet.getRange('A1').offset(errorSheet.getLastRow(), 0);
    cell.setValue(new Date() + ' function doGet():  ' + error)

  }

  return html;

}

为什么 getRange() 方法不起作用。

表示不能调用null的getRange()?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    getRange() 至少需要一个参数(取决于参数配置)。可能您的电子表格中没有名为 errors 的选项卡。

    建议:

    如果您想在下一个可用行添加新行,可以使用appendRow() 方法,只需考虑此方法需要一个值数组。您的 catch 语句应如下所示:

      } catch(error){
    
        var errorSheet = SpreadsheetApp.openById('...MySpreadSheetID...').getSheetByName('errors');
        errorSheet.appendRow([new Date() + ' function doGet():  ' + error])
      }
    

    【讨论】:

      【解决方案2】:

      您的 SpreadsheetApp.openById(...) 指的是“...MySpreadSheetID...”,这可能没有定义。

      您需要提供帐户中已定义电子表格的正确 ID。

      /edit:要么是电子表格未定义,要么是电子表格中的工作表未定义。

      【讨论】:

      • 我认为用户不想分享他正在处理的文档的id,因为它不相关。如果我没记错的话,它在id错误时显示的错误消息是Illegal spreadsheet key
      • @ocordova 用户也没有分享错误信息,所以你只是假设结果?所以它的电子表格或工作表没有定义......我编辑了这篇文章。
      • 如果您没有将有效的id 传递给openById() 方法,它会在该行抛出Illegal spreadsheet key 错误。 getSheetByName() 方法返回 null 如果没有给定名称的工作表,所以 errorSheetnull 然后调用 errorSheet 的 getRange 将抛出与问题标题匹配的错误 Cannot call method "getRange" of null,我也认为没有名为errors的标签。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2022-11-30
      • 2019-11-03
      • 1970-01-01
      相关资源
      最近更新 更多