Este código busca archivos dentro de una carpeta (los archivos se filtran por sufijo) y devuelve una lista con dos columnas, una para nombres de archivos y otra para ID de archivos.
var ss = SpreadsheetApp.getActive(); var sh = SpreadsheetApp.getActiveSheet(); var FILES_FOLDER = DriveApp.getFolderById("FOLDER ID"); var sufix = 'TXT' // adapt as necessary var list = []; var files = FILES_FOLDER.getFiles(); while (files.hasNext()) { file = files.next(); list.push([file.getName(),file.getId()]) } var result = [['FILENAME','FILE_ID], ...list.filter(r => r[0].includes(sufix)).sort()] sh.getRange(2,3, result.length, result[0].length).setValues(result);Bueno, necesito copiar los datos de cada archivo .txt en una hoja específica (que ya existe) para cada .txt. Hay como 5 archivos .txt posibles, pero los 5 no siempre están en la carpeta (a veces 2 o 3), así que necesito que el código sea versátil.
if (TXTFILE EXIST) { var TXT_FILE = DriveApp.getFileById(FILE ID); TXT_FILE.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); var tsvUrl = "https://drive.google.com/uc?id="+FILEID+"&x=.tsv"; var tsvContent = UrlFetchApp.fetch(tsvUrl,{muteHttpExceptions: true }).getContentText(); var tsvData = Utilities.parseCsv(tsvContent, '\t'); var sheet_SP = SpreadsheetApp.getActive().getSheetByName('SHEET_TO_COPY_DATA'); sheet_SP.getRange(1, 1, tsvData.length, tsvData[0].length).setValues(tsvData); } else { return }Supongo que es algo así como adjuntar cada nombre de archivo a su identificación, y luego, si existe un archivo con la palabra X en su nombre de archivo, obtenga su identificación de la lista anterior. O tal vez el NOMBRE DE LA HOJA también deba estar vinculado a la lista para la iteración. No sé cuál sería la forma más limpia de hacer esto.