Last active
February 9, 2021 12:05
-
-
Save pfelipm/aec0b1185e4e85fc7ac2fdcf13ca4a49 to your computer and use it in GitHub Desktop.
Consolida los datos del intervalo indicado procedentes de todas las HdC dentro de la carpeta designada en la HdC actual
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Importa intervalos de datos idénticos procedentes de todas | |
* las hdc que se encuentran en la carpeta indicada | |
* y los consolida en la actual. | |
* No realiza ningún control de errores. | |
* El orden de importación no está garantizado. | |
* Demo: https://drive.google.com/drive/folders/1BZNT5TNcOpKaP5Hy3BuvVZhT_FhtrWjr?usp=sharing | |
*/ | |
const ID_CARPETA_ORIGEN = '1bqlCmxWaL-LCNb6T7vOWNtPky3bK99K-'; | |
const RANGO_ORIGEN = 'Hoja 1!A1:E5'; | |
const CELDA_DESTINO = 'Hoja 1!A1'; | |
function consolidar() { | |
// Obtener referencias a las hdc dentro de la carpeta | |
const hdcsOrigen = DriveApp.getFolderById(ID_CARPETA_ORIGEN).getFilesByType(MimeType.GOOGLE_SHEETS); | |
// Lista de IDs de las hdc halladas | |
let idHdcs = []; | |
// Obtener todos los IDs por medio del iterador | |
while (hdcsOrigen.hasNext()) { | |
idHdcs.push(hdcsOrigen.next().getId()); | |
} | |
// Abrir cada una de las hdc identificadas e importar datos de manera consolidada | |
let datosConsolidados = []; | |
idHdcs.forEach(hdc => { | |
let datos = SpreadsheetApp.openById(hdc).getRange(RANGO_ORIGEN).getValues(); | |
// Opcional: elimina filas vacías del intervalo de cada HdC | |
datos = datos.filter(fila => fila.some(celda => celda != '')) | |
// Consolidar datos | |
datosConsolidados = [...datosConsolidados, ...datos]; | |
}); | |
// Adaptar dimensiones del intervalo destino a los datos a escribir | |
const rangoDestino = SpreadsheetApp.getActive().getRange(CELDA_DESTINO).offset(0, 0, datosConsolidados.length, datosConsolidados[0].length); | |
// Escribir datos importados a partir de celda destino | |
rangoDestino.setValues(datosConsolidados); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment