Google App脚本-如何获取指定行的所有值?

时间:2019-11-10 08:46:11

标签: javascript google-apps-script google-sheets

我对Google App脚本有点陌生,但我知道它本质上是带有google库等的javascript。

对于我的问题,我正在尝试制作一个脚本,该脚本在一定范围内进行编辑时会使用整行的值来调用函数。要设置范围“边界”,我目前有以下提示:

function onEdit(e){
  if (
    e.range.columnStart >= 3 &&
    e.range.columnEnd <= 9 &&
    e.range.rowStart >= 13 &&
    e.range.rowEnd <= 101
  )
  {
    Logger.log("Edit in range");
    var editRow = (e.range.rowStart, e.range.rowEnd)
    Logger.log("Edit Row: " + editRow);
  }
  else
  {
    Logger.Log("Edit outside of Range");
  }
}

这当前有效,并记录是否在指定范围内进行编辑,并记录进行编辑的行。我需要弄清楚的是如何获取该已编辑单元格的整个行的值所以我可以将其传递给函数。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您要获取已编辑范围的值。

您已经使用过 Event objects  识别并评估已编辑范围的范围。 您可以使用相同的信息来进行以下操作:

  • getSheet()
  • getRange(row, column, numRows, numColumns),然后
  • getValues()来自范围

function onEdit(e){



  if (
    e.range.columnStart >= 3 &&
    e.range.columnEnd <= 9 &&
    e.range.rowStart >= 13 &&
    e.range.rowEnd <= 101
  )
  {
    Logger.log("Edit in range");
    var sheet = e.range.getSheet();
    var editRowRange = sheet.getrange(e.range.rowStart,e.range.columnStart,e.range.rowEnd-e.range.rowStart+1,e.range.columnEnd-e.range.columnStart+1);
    var editRow = editRowRange.getvalues();
    Logger.log("Edit Row: " + editRow);
  }
  else
  {
    Logger.Log("Edit outside of Range");
  }
}