Estoy tratando de automatizar la capacidad de actualización en mi script. Cuando ejecuto el siguiente código, aparece un error de sintaxis en la línea 9 (arr.forEach ...) y no estoy seguro de qué estoy haciendo mal.

function multipleCallTr(){
  refreshPage1();
}


function refreshPage1() {

  const arr = ['testsheet1', 'testsheet2'];
  arr.forEach(element => {

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName(element), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  })
}

Este código a continuación funciona, pero obviamente sería mucho mejor ejecutarlo a través de una declaración de bucle como lo estoy intentando anteriormente.

function multipleCallTr(){
  refreshPage1();
  refreshPage2(); 
}


function refreshPage1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('testsheet1'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
}

function refreshPage2() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('testsheet2'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
}

0
zstar 12 feb. 2020 a las 19:48

2 respuestas

La mejor respuesta

Debe habilite V8 (si no está habilitado para usted ), para usar la sintaxis de ES6 como la flecha =>

1
TheMaster 12 feb. 2020 a las 17:02

Lo resolvió usando esto:

function multipleCallTr(){
  refreshPage1();
}


function refreshPage1() {

  i=0
  const arr = ['testsheet1', 'testsheet2'];
  for(i=0; i < arr.length; i++){

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName(arr[i]), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  }
}


0
zstar 12 feb. 2020 a las 16:54