Hay ocasiones en las que nos puede resultar útil obtener el nombre de un fichero de Drive del cual solo tenemos el id. La forma de solucionar este problema es extremadamente fácil, obtendremos el fichero gracias al id y la funcionalidad de DriveApp y entonces le preguntaremos el nombre.
Dado que esto tiene utilidad en listas grandes de ids, ya he preparado el código para que lea los ids de la primera columna y escriba el nombre en la segunda columna tal y como se ve en esta imagen:
Es fácil de adaptar a lo que necesitéis. Os adjunto el código, ya viereis que más sencillo no puede ser. Si tenéis cualquier duda, hacédmela llegar sin problemas.
function onOpen() { SpreadsheetApp.getUi().createMenu("SCRIPT").addItem("Get Name","GetName").addToUi(); } function GetNameFromId(id) { var result = "NOT FOUND"; var file = DriveApp.getFileById(id); if(file != null) { result = file.getName(); } return result; } function GetName() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var values = sheet.getDataRange().getDisplayValues(); for( var i = 1 ; i < values.length ; ++i ) { var str = values[i][0]; if(str != "") { sheet.getRange(i+1,2).setValue(GetNameFromId(str)); } } }
Solo como nota final, os comento que no es factible usar esta funcionalidad dentro de una formula ( como quería hacer al principio de redactar este post ) dado que las formulas se ejecutan sin permisos y esta funcionalidad necesita si o si de acceso a DriveApp ( como es lógico ). Es por ello que lo he montado en forma de ejecución batch de toda la lista.
Cualquier sugerencia siempre es bien recibida.
Nos vemos
P.D: Tal vez te interesa saber el paso contrario, como obtener el id de un fichero con Google Apps Script
No hay comentarios:
Publicar un comentario