web-dev-qa-db-fra.com

Définition de tableaux dans Google Scripts

Je suis un débutant en javascript et j'essaie d'écrire un script pour une feuille de calcul qui en extraira diverses choses. Dès le départ, j'ai du mal à définir un tableau de noms qui figureront dans la feuille de match. L'erreur dit "manquant; avant déclaration (ligne 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();

  // ...
}
5
derekantrican

Essaye ça

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()]

Vous pouvez définir les tableaux simplement comme suit, au lieu d’allouer, puis d’affecter.

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

Votre erreur initiale était due à la ligne suivante, 

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

Puisque Name est déjà défini et que vous assignez les valeurs à ses éléments, vous devez ignorer la var, donc

Name[0] = Name_cell.getValue();

Conseil pro: pour la plupart des problèmes qui, comme celui-ci, n'impliquent pas directement les services Google, vous feriez mieux de rechercher Google de la manière de le faire en javascript.

8
Karthik T

Je pense que c'est peut-être parce que vous déclarez une variable que vous avez déjà déclarée:

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

Je pense que cela devrait être comme ça:

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

Dis-moi si ça marche! ;)

1
mario

Cela peut être utile à quelques-uns qui luttent comme moi:

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