在Google Scripts中定义数组

时间:2013-09-03 04:27:44

标签: javascript arrays google-apps-script

我是一个javascript新手,并试图为电子表格编写一个脚本,从中提取各种内容。马上,我无法定义spreasheet中的一系列名称。错误显示“缺失;在陈述之前(第10行)”

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  //var values = rows.getValues();

  var Names = sheet.getRange("A2:A7");
  var Name = new Array(6);
  var Name_cell = Names.getCell(1, 1);
  var Name[0] = Name_cell.getValue();  //  <-- Here's the issue
  var Name_cell = Names.getCell(2, 1);
  var Name[1] = Name_cell.getValue();
  var Name_cell = Names.getCell(3, 1);
  var Name[2] = Name_cell.getValue();
  var Name_cell = Names.getCell(4, 1);
  var Name[3] = Name_cell.getValue();
  var Name_cell = Names.getCell(5, 1);
  var Name[4] = Name_cell.getValue();
  var Name_cell = Names.getCell(6, 1);
  var Name[5] = Name_cell.getValue();

  // ...
}

3 个答案:

答案 0 :(得分:8)

试试这个

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  //var values = rows.getValues();

  var Names = sheet.getRange("A2:A7");
  var Name = [
    Names.getCell(1, 1).getValue(),
    Names.getCell(2, 1).getValue(),
    .....
    Names.getCell(5, 1).getValue()]

您可以简单地按如下方式定义数组,而不是分配然后分配。

var arr = [1,2,3,5]

您的初始错误是由于以下行和类似的行

var Name[0] = Name_cell.getValue(); 

由于Name已经定义,并且您要将值分配给其元素,因此您应该跳过var,所以只需

Name[0] = Name_cell.getValue();

专业提示:对于大多数问题,就像这个问题一样,不直接涉及Google服务,一般情况下,谷歌搜索javascript的方式最好。

答案 1 :(得分:2)

我想也许是因为你声明了一个你已经声明过的变量:

var Name = new Array(6);
//...
var Name[0] = Name_cell.getValue();  //  <-- Here's the issue: 'var'

我认为这应该是这样的:

var Name = new Array(6);
//...
Name[0] = Name_cell.getValue();

告诉我它是否有效! ;)

答案 2 :(得分:1)

对于一些像我一样挣扎的人来说,这可能会有所帮助:

var data = myform.getRange("A:AA").getValues().pop();
var myvariable1 = data[4];
var myvariable2 = data[7];