googlesheets将单元格值转换为数组

时间:2018-02-27 12:47:55

标签: javascript google-apps-script

我正在尝试循环一个范围并获取值然后将值推送到数组中。但是,它不起作用。我尝试使用调试器,它停留在哪里 ranking.push ......是。我尝试过使用while循环方式和每种方式,但都不起作用。这就是Execution Transcript所说的:“执行失败:无法将函数mergeAcross(){/ * * /} 9转换为(class)”。 有人可以帮忙吗?干杯。

{{1}}

谢谢你们!

1 个答案:

答案 0 :(得分:0)

使用.getValues()会返回2D数组,因此除非您正在抓取数据的子集,否则无需推送。如果您想要全范围,一次获取所有值更容易。每行都是一个逗号分隔列的数组。

这是假设2列设置:

function create2DArray() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();

  Logger.log(data)
  // [ [Row 1 Col 1, Row 1 Col 2], [Row 2 Col 1, Row 2 Col 2]... ]
}

如果您想推送一个子集(特定列,让我们说)来创建一维数组,请执行以下操作:

function createNewArray() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();

  var array = [];

  for(var i=0; i<data.length; i++) {
    // Push only column 1
    array.push(data[i][0])

    // Or create a 2D array of rows
    // array.push([data[i][0]])
  }

  Logger.log(array)
  // [Row 1 Col 1, Row 2 Col 1, Row 3 Col 1...]
}