在Google Apps脚本中记录范围

时间:2016-06-02 05:01:40

标签: google-apps-script

我是使用Google App Script的新手,我不完全了解" Logger.log"命令有效。

我正在使用Google App Script作为电子表格的绑定脚本。下面是我正在处理的代码:

function tasks() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Task List");
  sheet.activate();

  var hi = 23;
  Logger.log(hi);
  Logger.log("The range is " + sheet.getRange(1, 1, 10, 1));
}

当我运行代码时,它会显示在记录器中:

[16-06-02 00:56:12:129 EDT] 23.0
[16-06-02 00:56:12:130 EDT] The range is Range

为什么显示"范围"对于sheet.getRange函数而不是数据数组。

也有人可以解释" getRange"和" getDataRange"。

2 个答案:

答案 0 :(得分:1)

Range对象是一个范围的指针,如A1:A10。这与范围中的一组值不同,后者是条目数组。要从范围中获取值,请使用getValues方法:

Logger.log("The values are " + sheet.getRange(1, 1, 10, 1).getValues());

关于你的第二个问题:documentation非常清楚getDataRange的作用:它为你提供了以A1开头的范围,并且只要工作表中有数据就会延伸。如果您只在B5和D2中放置一些数据,而在其他任何地方,DataRange是A1:D5。使用getRange,您可以指定所需的范围。

答案 1 :(得分:1)

您正在记录范围对象,因此记录器会告诉您它就是这样。谷歌应用脚​​本的文档非常好。特别是,对于您的情况,您必须查看getRange()returns

因此,如果您想记录范围实际是什么,您可以使用getA1Notation()来告诉您范围。在这种情况下,因为它从第1行第1列开始,并且长度为1行10列,所以它将是A1:J1。如果您希望查看该特定范围内的值,可以使用将返回2D数组的getValues()。

记录器将按照您的预期记录字符串和数字,并且数组也将以字符串格式输出