Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

172
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda