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

142
Vistas
Cómo crear un directorio de archivos a partir de la lectura de una hoja de cálculo en el script de aplicaciones

Logré registrar el directorio de archivos/carpetas de una carpeta en una hoja de Google. De esta hoja de Google, me gustaría copiar esta estructura de carpetas leyendo cada fila.

Enlace de hoja de Google: https://docs.google.com/spreadsheets/d/1qgDd8PEmHSYz5IsN9banYBjbmAyoLLVe3WMnOvmHdlE/edit?usp=sharing

 function copyFolderTree() { const sourceFolderId = '1uTGq2MRHzbev23sQzzFCi3Pl-v-ntMql'; const sourceFolder = DriveApp.getFolderById(sourceFolderId).getName(); const ss = SpreadsheetApp.getActiveSpreadsheet(); const ws = ss.getSheetByName('Sheet1'); const data = ws.getDataRange().getValues(); range.shift() const destinationRootFolder = DriveApp.createFolder(`${sourceFolder}`) data.forEach(function(row){ Logger.log(row) let depth = row[4] if (row[4] === depth && row[2] === 'Folder') { Logger.log(`Name of folder is currently ${row[4]}`) Logger.log(`Depth is currently ${row[4]}`) Logger.log(`Type is currently ${row[2]}`) destinationRootFolder.createFolder(row[0]) row.push('hello') Logger.log(row) range.setValues(values); } }) } I realise this is the incorrect thinking. Do I need to place the newly created folder into it's copied parent folder using the folder's name? Thank you, [1]: https://docs.google.com/spreadsheets/d/1qgDd8PEmHSYz5IsN9banYBjbmAyoLLVe3WMnOvmHdlE/edit?usp=sharing
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Para el árbol de carpetas, puede probar

 function copyFolderTree() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const ws = ss.getSheetByName('Sheet1'); const range = ws.getDataRange(); const values= range.getValues(); var levels = [] values.forEach(r => { if (r[2]=='Folder'){ if (r[4]==0){ // root var dossier = DriveApp.createFolder(r[0]); levels[1] = dossier.getId(); // specific correction as 1 doesn't exists in the example provided } else { var parent = DriveApp.getFolderById(levels[r[4]-1]); var dossier = parent.createFolder(r[0]); levels[r[4]] = dossier.getId(); } } }) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

De From this Google Sheet I would like to copy this folder structure by reading each row. y First I would like to create the folder structure. My next step would be to work on transferring the files across. , cuando desee copiar una carpeta (en su hoja de cálculo de muestra, es "Amy Bits"), incluidas todas las subcarpetas y archivos mediante Google Apps Script, ¿qué tal la siguiente secuencia de comandos de muestra? Creé una biblioteca de Google Apps Script para lograr esta situación. Entonces, en esta respuesta, me gustaría proponer el script usando la biblioteca de Google Apps Script.

Uso:

1. Instalar biblioteca.

Puede ver el método para instalar la biblioteca aquí .

2. Habilite la API de Drive.

En esta biblioteca, se utiliza Drive API. Por lo tanto , habilite la API de Drive en los servicios avanzados de Google .

3. Guión de muestra:

Cuando se usa su hoja de cálculo de muestra, el script de muestra es el siguiente.

 function myFunction() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const sourceFolderId = sheet.getRange("B2").getValue().split("/")[5]; // Please set the source folder ID. const destinationFolderId = DriveApp.createFolder("sample").getId(); // Please set the destination folder ID. const object = { sourceFolderId, destinationFolderId, overwrite: true }; const res = CopyFolder.copyAllFilesFolders(object); console.log(res); }
  • Si puede colocar directamente el ID de la carpeta de origen y el ID de la carpeta de destino, también puede usar el siguiente script de muestra.

     function myFunction() { const object = { sourceFolderId: "###", // Please set the source folder ID. destinationFolderId: "###", // Please set the destination folder ID. overwrite: true, }; const res = CopyFolder.copyAllFilesFolders(object); console.log(res); }

Nota:

  • Si el tiempo de proceso del script supera los 6 minutos, puede ver un script de muestra más. Árbitro

Referencia:

  • CopyFolder de la biblioteca de Google Apps Script
about 4 years ago · Juan Pablo Isaza Denunciar
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