【问题标题】:Logging a Range in Google Apps Script在 Google Apps 脚本中记录范围
【发布时间】:2016-06-02 05:01:40
【问题描述】:

我是使用 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”的区别。

【问题讨论】:

    标签: google-apps-script


    【解决方案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,您可以指定您想要的范围。

    【讨论】:

    • 那么关于getDataRange,它是在垂直、水平地检查单元格,还是当程序说“范围”时,它的具体含义是什么?
    • 范围是一个矩形单元格块。 getDataRange 返回以 A1 为左上角并包含工作表中所有数据的最小块。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多