Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
Java Script para obtener/combinar datos de varias Hojas de cálculo de Google que se almacenan en diferentes carpetas (archivos)

Estoy probando un script para extraer datos de un nombre de hoja dado y un rango dado en 1 hoja principal. el problema en este caso es que las hojas de cálculo (con varias hojas) se archivan en diferentes carpetas. entonces tengo 1 carpeta principal y en esa carpeta tengo carpetas de archivo para cada año (2012-2022).

He creado un script que está pasando por estas carpetas y obtengo los Id. de carpeta en los que está funcionando esa parte.

También he hecho un script para sacar los datos de la hoja ("Rekenblad") y el rango "A11:AY136". Creo que eso también debería funcionar.

La parte donde conecto esas 2 funciones va mal. Lo que recibiría es:

Un archivo principal (El script está dentro del archivo principal) con:

  1. Una hoja (blad1) con una lista de toda la información del archivo
  2. Una hoja (blad2) con todos los rangos de datos combinados. Cada vez que ejecuto este script, los datos deben borrarse para que no tenga dobles.

El más importante es el punto 2. El punto 1 es solo para mí verificar si todos los archivos se importaron correctamente y un enlace para que pueda verificar fácilmente esos archivos.

El guión se ve así:

 function listFolders(folder) { var sheet = SpreadsheetApp.getActiveSheet().clearContents(); sheet.appendRow(["Name", "URL","ssId", "Type"]); var folder = DriveApp.getFolderById("FOLDER_ID_PARENT_FOLDER"); var subfolders = folder.getFolders(); while (subfolders.hasNext()) { //Logger.log(folder); var name = subfolders.next(); while (subfolders.hasNext()) { //Logger.log(folder); var name = subfolders.next(); var files = name.getFiles(); var cnt = 0; var file; var ssID var fileType var combinedData = [] while (files.hasNext()) { var file = files.next(); cnt++; Logger.log(file); Logger.log(cnt); data = [ file.getName(), file.getUrl(), ssID = file.getId(), fileType = file.getMimeType(), ]; sheet.appendRow(data); if (fileType ==="application/vnd.google-apps.spreadsheet"){ ssID = files.getId(); data = GetData(ssID) data = data.map(function(r){return r.concat([file.getName()]);}); combinedData = combinedData.concat(data); } } var wss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Blad1") ; ws.getRange("A2:AY").clearContent(); wss.getRange(2, 1, combinedData.length, combinedData[0].length).setValues(combinedData); } } } function GetData(ssID){ var aa = SpreadsheetApp.openById(ssID); var wa = aa.getSheetByName("Rekenblad"); var info = wa.getRange("A11:AY136").getValues(); return info }
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!