A veces resulta útil el buscar y listar archivos que tienes en tu Google drive y listarlos en una Hoja de cálculo de Google), por ejemplo, podríamos listar todos los archivos de tipo PDF que sean algún tipo de manual que se va modificando y actualizando con el tiempo, otro uso es el listar un conjunto de archivos de tipo imagen que podrían conformar nuestro catalogo de productos y/o servicios, para que mediante un script nos liste todo es ellos sin necesidad de estarlos escribiendo en nuestra Google Sheets de uno por uno , inclusive podríamos mandar a mostrar todas esas imágenes desde el mismo código, acelerando la elaboración o actualización de nuestro catalogo en tiempo récord, lo que aumentaría exponencialmente nuestra productividad en este tipo de tareas con la consecuente optimización de tiempo. Como podemos apreciar la utilidad va más allá de simplemente listarlos en Google sheets.
En esta ocasión solo vamos a ver la manera de traer esa importante información a nuestra HCG (Hoja de cálculo de Google) , mediante Google apps script, por cierto siempre recomiendo dar un paseo por la documentación oficial , para cualquier consulta: https://developers.google.com/apps-script/reference/base/mime-type
aquí una muestra de los datos que se pueden obtener en la HCG (Hoja de cálculo de Google), la imagen corresponde a la lista de todos los formularios existentes en una carpeta especifica, por cierto recordemos que os archivos nativos no tienen peso en Google Drive, por eso en la última columna el dato es cero.
para realizar este ejercicio y tener éxito en su implementación, se requiere como mínimo:
conocer el manejo básico de rangos mediante Google apps script
conocimientos básicos sobre bucles en Javascript
saber obtener el ID de un folder o carpeta
conocer o consultar las siguientes referencias
búsqueda: https://developers.google.com/apps-script/reference/drive/folder#searchfilesparams
parámetros: https://developers.google.com/drive/api/v2/search-parameters
mime types 1 : https://developers.google.com/drive/api/v2/mime-types
mime types 2: https://developers.google.com/apps-script/reference/base/mime-type
Puedes mirar le video y pausarlo las veces que necesites y/o acceder al código en los siguientes aparatados:
si el tema fue de utilidad, regálame 👍 una manita arriba en el canal de YouTube:
function Listar_Archivos_OE_Nivel_1() {
var hoja = SpreadsheetApp.getActive().getSheetByName("PDF");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var folder = DriveApp.getFolderById('aquí el ID de la carpeta');
var Mis_Archivos = folder.searchFiles('mimeType = "application/pdf" ');
var f = 1;
while (Mis_Archivos.hasNext()) {
var Archivo = Mis_Archivos.next();
var f = f + 1;
hoja.getRange('A'+f).setValue(Archivo.getName());
hoja.getRange('B'+f).setValue(Archivo.getId());
hoja.getRange('C'+f).setValue(Archivo.getMimeType());
hoja.getRange('D'+f).setValue(Archivo.getUrl());
hoja.getRange('E'+f).setValue(Archivo.getParents().next().getName());
hoja.getRange('F'+f).setValue(Archivo.getParents().next().getUrl());
//hoja.getRange('G'+f).setValue(Archivo.getParents().next().getSize());
hoja.getRange('G'+f).setValue(Archivo.getSize());
//SpreadsheetApp.flush();//opcional
}
}
function Listar_Archivos_OE_nivel2() {
var hoja = SpreadsheetApp.getActive().getSheetByName("PDF");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var folder = DriveApp.getFolderById('aquí el ID de la carpeta');
var Mis_Archivos = folder.searchFiles('mimeType = "application/pdf" ');
while (Mis_Archivos.hasNext()) {
var Archivo = Mis_Archivos.next();
hoja.appendRow([Archivo.getName(),Archivo.getId(),Archivo.getMimeType(),Archivo.getUrl(),Archivo.getParents().next().getName(),
Archivo.getParents().next().getUrl(),(Archivo.getSize()*0.000977).toFixed() + " KB"]);
//SpreadsheetApp.flush();//opcional
}
}
function ListarGoogleDocs(){
var hoja = SpreadsheetApp.getActive().getSheetByName("Docs");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var carpeta = DriveApp.getFolderById('aquí el ID de la carpeta');
var docs = carpeta.getFilesByType(MimeType.GOOGLE_DOCS);
while (docs.hasNext()) {
var doc = docs.next();
hoja.appendRow([doc.getName(),doc.getId(),doc.getMimeType(),doc.getUrl(),doc.getParents().next().getName(),doc.getParents().next().getUrl(),doc.getSize()])
}
}
function ListarGoogleForms(){
var hoja = SpreadsheetApp.getActive().getSheetByName("Forms");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var carpeta = DriveApp.getFolderById('aquí el ID de la carpeta');
var docs = carpeta.getFilesByType(MimeType.GOOGLE_FORMS);
while (docs.hasNext()) {
var doc = docs.next();
hoja.appendRow([doc.getName(),doc.getId(),doc.getMimeType(),doc.getUrl(),doc.getParents().next().getName(),doc.getParents().next().getUrl(),doc.getSize()])
}
}
function ListarHCGoogle(){
var hoja = SpreadsheetApp.getActive().getSheetByName("HCG");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var carpeta = DriveApp.getFolderById('aquí el ID de la carpeta');
var docs = carpeta.getFilesByType(MimeType.GOOGLE_SHEETS);
while (docs.hasNext()) {
var doc = docs.next();
hoja.appendRow([doc.getName(),doc.getId(),doc.getMimeType(),doc.getUrl(),doc.getParents().next().getName(),doc.getParents().next().getUrl(),doc.getSize()])
}
}
function ListarGoogleImg(){
var hoja = SpreadsheetApp.getActive().getSheetByName("IMG");
var cabecera = hoja.getRange("A1:G1");
var Datoscabecera = cabecera.setValues([["Nombre", "ID-archivo", "tipo", "url-archivo", "Folder", "Url-folder","Tamaño"]]);
var carpeta = DriveApp.getFolderById('aquí el ID de la carpeta');
var docs = carpeta.getFilesByType('image/png');
while (docs.hasNext()) {
var doc = docs.next();
hoja.appendRow([doc.getName(),doc.getId(),doc.getMimeType(),doc.getUrl(),doc.getParents().next().getName(),doc.getParents().next().getUrl(),(doc.getSize()*0.000977).toFixed() + " KB"])
}
hoja.getRange("H1").setFormula('=ARRAYFORMULA(IMAGE("https://drive.google.com/uc?export=view&id=" & B1:B6))');
}
nota:
si no sabes como copiar el código en el editor de secuencia de comandos, solo ve al menú herramientas / editor de secuencia de comandos y copia-pega el código o mira este vídeo de apoyo
Síguenos y suscríbete en: