Logré encontrar una manera de crear un directorio de carpetas leyendo una hoja de Google vinculada a continuación.
https://docs.google.com/spreadsheets/d/1qgDd8PEmHSYz5IsN9banYBjbmAyoLLVe3WMnOvmHdlE/edit#gid=0
Ahora, mi problema es transferir archivos individuales a esas carpetas recién creadas y la profundidad de búsqueda relevante. Pensé que esto sería posible; sin embargo, ahora estoy pensando que no es por lo tanto el código limitado a continuación.
Esto se debe a que para cada archivo (Columna C), necesitaría leer el ID de la carpeta principal de origen (Columna D) y luego convertirlo en el equivalente de la carpeta de destino registrado en la Columna F. No estoy seguro de cómo puedo hacerlo. ¿este? Además, si la Hoja de cálculo de Google se ordenara en carpetas y archivos en una primera instancia (Columna C), lo ideal sería que la solución siguiera funcionando cuando los archivos y las carpetas están desordenados.
Sé que esta no es la mejor solución; sin embargo, estoy buscando una solución que pueda entender para avanzar en mi comprensión.
function copyFiles() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const ws = ss.getSheetByName('Details'); const range = ws.getDataRange(); const values = range.getValues(); values.forEach(function(row, index) { if (row[2] == 'File'){ } else { } }) }Gracias de antemano
Suponiendo que sus datos estén bien organizados secuencialmente (según el ID de archivos en la columna B)
function copyFiles() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const ws = ss.getSheetByName('Sheet1'); const range = ws.getDataRange(); const values = range.getValues(); var parentID = '' values.forEach(r => { if (r[2] == 'Folder') { parentID = r[5] } else if (r[2] == 'File') { r[5] = DriveApp.getFileById(r[1]).makeCopy(r[0], DriveApp.getFolderById(parentID)).getId() } }) range.setValues(values) }