Importar Archivos CSV con Google Apps Script

Si utiliza Microsoft Excel, probablemente esté acostumbrado a usar e importar datos de orígenes externos, por ejemplo, archivos CSV. Podemos tener la misma facilidad en Hojas de cálculo de Google usando Google Apps Script.

¿Qué es Google Apps Script?

Apps Script es una plataforma de scripting desarrollada por Google para el desarrollo de aplicaciones ligeras en la plataforma G Suite. Se basa en JavaScript 1.6, pero también incluye algunas características de 1.7, 1.8 y un subconjunto de la API de ECMAScript 5. Los proyectos de Apps Script se ejecutan en la infraestructura en la nube de Google. Según el propio Google, Apps Script «proporciona formas sencillas de automatizar tareas en productos y servicios de terceros». Apps Script también está disponible para Google Docs y Slides.

Encontrará todos los scripts de este tutorial en la hoja de cálculo de ejemplo, haga una copia en su unidad para poder ver los scripts y editar la hoja de cálculo.

Acceso al script de aplicaciones

Para acceder a los scripts de Google Apps, cree una hoja de cálculo en blanco o copie la hoja de ejemplo; Haga clic en Herramientas > Editor de scripts:

Hojas de cálculo de Google

Se abrirá una nueva pestaña con el editor de texto de Google Apps Script:

Editor de texto de google Apps Script

Creación de scripts

Podemos importar fácilmente archivos CSV en Hojas de cálculo de Google utilizando la función Google Apps Script Utilities.parseCsv(). Los siguientes códigos muestran cómo importar y mostrar datos de un archivo CSV por URL, excepto en Google Drive o como archivo adjunto en Gmail.

Autorización de scripts de Google Apps

Para todos los ejemplos siguientes, al ejecutar los scripts necesitamos autorizar a Google Apps Scripts a acceder a algunas funciones de las API de Google.

Autorización de scripts de Google Apps - 1

Probablemente, debido a que su script aún no está homologado, aparecerá la siguiente pantalla:

Autorización de scripts de Google Apps - 2

Haga clic en Mostrar proyecto de acceso avanzado y continúe autorizando:

Autorización de scripts de Google Apps - 3

Importación del archivo CSV desde un archivo adjunto de correo electrónico en Gmail

función importCSVDoGmail()    varemails á GmailApp.search("from:henrique@marquesf.com"); Filtramos nuestros correos electrónicos  varemail á emails.[0]getMessages(); [0]Tomamos el primer mensaje del hilo de correo electrónico  varattachment á email.getAttachments(); Toma[0]mos el primer archivo adjunto del correo electrónico    Validamos que este archivo adjunto es un CSV  if(attachment.getContentType() á "text/csv")        varspreadsheet á SpreadsheetApp.getActiveSheet(); Seleccionamos el objeto de la hoja de trabajo activa    varcsv - Utilities.parseCsv(spreadsheet.getDataAsString(), ",");        Borramos el contenido de la hoja de trabajo antes de importar los datos    sheet.clearContents().clearFormats();    Importamos todos los datos de la celda A1    sheet.getRange(1, 1, csv.length, csv[0].length).setValues(csv);  } }

En nuestra variable de correos electrónicos realizaremos una búsqueda de filtros en nuestro Gmail para devolver el primer correo electrónico correspondiente, podemos utilizar cualquier operador de búsqueda de Gmail dentro de la función GmailApp.search ("operator:search»), consulta aquí la lista completa de operadores.

Importación del archivo CSV desde Google Drive

función importCSVDoGoogleDrive()    varfile á DriveApp.getFilesByName("data.csv").next();    varcsv - Utilities.parseCsv(file.getBlob().getDataAsString());    varspreadsheet á SpreadsheetApp.getActiveSheet();    spreadsheet.getRange(1, 1, csv.length, c[0]sv.length).setValues(csv);}

En el ejemplo anterior estamos buscando el archivo data.csv que está en la raíz de Google Drive, cambie esta ruta según sea necesario.

Descargue e importe el archivo CSV desde un sitio web externo

función importCSVDaWeb()    URL de descarga de archivos CSV    varcsvUrl á "https://marquesfernandes.com/wp-content/uploads/2020/01/exemplo_csv.csv";    varcsv - UrlFetchApp.fetch(csvUrl).getContentText();    vardata - Utilities.parseCsv(csv);    varspreadsheet á SpreadsheetApp.getActiveSheet();    spreadsheet.getRange(1, 1, data.length, data[0].length).setValues (datos);}

Recuerde que el servicio UrlFetchApp solo realiza solicitudes HTTP y aún no es posible conectarse a servidores FTP.

Deja un comentario