Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
Extraer datos de varios libros de trabajo y hojas

Tengo problemas para obtener datos de unos 40 libros de trabajo diferentes, cada uno con dos hojas. Las hojas están etiquetadas como 'Sesión 1' y 'Sesión 2'. Pensé que escribí el script para dividir los datos entre las dos pestañas en el maestro, pero está llenando ambas pestañas con los mismos datos de la sesión uno solamente. Nunca he publicado aquí, así que lo siento de antemano si no debía incluir una gran cantidad de mi guión, pero no tengo ni idea de a dónde ir desde aquí.

 //while loop to get all files in folder while(filesIterator.hasNext()){ file = filesIterator.next(); fileType = file.getMimeType(); //if statement to find spreadsheets in folder if(fileType === "application/vnd.google-apps.spreadsheet"){ ssID = file.getId(); data = getDataFromSpreadsheet(ssID); session = getSheetNames(ssID); Logger.log(session); //Fill last cell in row w/ original file name data = data.map(function(r){return r.concat([file.getName()]);}); combinedData = combinedData.concat(data); } //end if }//end while //If statements to seperate sessions tabs if(session = SpreadsheetApp.newFilterCriteria() .whenTextContains('Session 1') .build()){ //Build session 1 spreadsheet var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Session 1"); //Clear form after every run ws.getRange("A2:D" + ws.getLastRow()).clear(); //Write data to spreadsheet ws.getRange(2, 1, combinedData.length, combinedData[0].length).setValues(combinedData); } //end if if(session = SpreadsheetApp.newFilterCriteria() .whenTextContains('Session 2') .build()){ //Build session 2 spreadsheet var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Session 2"); //Clear form after every run ws.getRange("A2:D" + ws.getLastRow()).clear(); //Write data to spreadsheet ws.getRange(2, 1, combinedData.length, combinedData[0].length).setValues(combinedData); } //end if } //Function to pull all data from workbook function getDataFromSpreadsheet(ssID) { //Open workbook var ss = SpreadsheetApp.openById(ssID); //Get all sheets in workbook and put into array var ws = ss.getSheets()[0]; //Get data in the open sheet var data = ws.getRange("A4:C" + ws.getLastRow()).getValues(); return data; } //Function to return name of sheets in workbook function getSheetNames(ssID) { var ss = SpreadsheetApp.openById(ssID); var sheets = ss.getSheets(); var sheetNames = [] sheets.forEach(function (sheet) { sheetNames.push(sheet.getName()); }); return sheetNames; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Entre otros posibles problemas, aparentemente está confundido acerca de cómo escribir " //If statements to seperate sessions tabs " (sic) porque las expresiones de declaración if como las siguientes no tienen sentido

 session = SpreadsheetApp.newFilterCriteria() .whenTextContains('Session 2') .build()

como siempre devolverán true (si cambia el operador de comparación a == o === aparentemente siempre devolverán false ).

Prueba session.find('Session 1') o ~session.indexOf('Session 1')

El primero devolverá un null si no se encuentra la 'Session 1' , que es falsy y el miembro del elemento, que es truthy . El segundo devolverá false o true .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda