Importar y Exportar Archivos CSV en Google Sheets con Google Apps Script

Hoy hablaremos de Google Sheets y todo lo relacionado con los archivos CSV. Vamos a ver qué es un archivo CSV y cómo importarlo y exportarlo directamente desde Google Sheets. Además, exploraremos cómo automatizar estos procesos usando macros y Google Apps Script, ya sea mediante un menú personalizado o configurando tareas automáticas que se ejecuten diariamente.

Introducción

Los archivos CSV (Archivos Seprados por Comas, o Comma Separated Values) son una manera sencilla y eficiente de manejar grandes cantidades de datos. Estos archivos son livianos y ampliamente compatibles, lo que los hace ideales para transferir datos entre diferentes programas y plataformas.

¿Qué es un archivo CSV?

Un archivo CSV es un archivo de texto simple que almacena datos tabulares (números y texto) en formato de texto sin formato. Cada línea del archivo es un registro de datos, y cada registro consta de uno o más campos, separados por comas.

Ejemplo de un archivo CSV:

Producto,Categoría,Precio,Cantidad
Producto A,Electrónica,100,50
Producto B,Electrónica,150,30
Producto C,Hogar,200,20

Exportar CSV desde Google Sheets

Paso 1: Exportar manualmente

  1. Abre tu Google Sheets.
  2. Ve a Archivo > Descargar > Valores separados por comas (.csv).

Paso 2: Exportar automáticamente usando Google Apps Script

  1. Abre el editor de scripts en tu Google Sheets (Extensiones > Apps Script).
  2. Añade el siguiente código para exportar la hoja actual como un archivo CSV y enviarlo por correo electrónico:
function exportarCSV() {
  const libro = SpreadsheetApp.getActiveSpreadsheet();
  const hoja = libro.getActiveSheet();
  const nombreHoja = hoja.getName();
  const idHoja = hoja.getSheetId();
  const url = `https://docs.google.com/spreadsheets/d/${libro.getId()}/gviz/tq?tqx=out:csv&sheet=${nombreHoja}`;

  const response = UrlFetchApp.fetch(url);
  const csvBlob = response.getBlob().setName(nombreHoja + '.csv');

  // Guarda el archivo en Google Drive
  const carpeta = DriveApp.getFolderById('YOUR_FOLDER_ID'); // Reemplaza con tu ID de carpeta
  carpeta.createFile(csvBlob);

  // Enviar por correo electrónico
  MailApp.sendEmail({
    to: 'youremail@example.com',
    subject: 'CSV Exportado',
    body: 'Adjunto el archivo CSV exportado.',
    attachments: [csvBlob]
  });
}

Configurar una tarea automatizada

  1. Ve a Reloj de Activadores en el editor de scripts (Reloj de Activadores > Crear nuevo activador).
  2. Configura el activador para ejecutar exportar CSV a una hora específica cada día.

Importar CSV en Google Sheets

Paso 1: Importar manualmente

  1. Ve a Archivo > Importar.
  2. Sube el archivo CSV desde tu computadora.
  3. Selecciona cómo deseas importar los datos (reemplazar hoja actual, crear nueva hoja, etc.).

Paso 2: Importar automáticamente usando Google Apps Script

  1. Añade el siguiente código para importar un archivo CSV desde Google Drive a una hoja específica en Google Sheets:
function importarCSV() {
  const archivoId = 'YOUR_CSV_FILE_ID'; // Reemplaza con el ID de tu archivo CSV en Google Drive
  const archivo = DriveApp.getFileById(archivoId);
  const csvBlob = archivo.getBlob().getDataAsString();

  const datos = Utilities.parseCsv(csvBlob);

  const libro = SpreadsheetApp.getActiveSpreadsheet();
  const hoja = libro.getSheetByName('Importar'); // Asegúrate de que esta hoja exista
  hoja.clear(); // Limpia la hoja antes de importar nuevos datos

  hoja.getRange(1, 1, datos.length, datos[0].length).setValues(datos);
}

Configurar una tarea automatizada

  1. Ve a Reloj de Activadores en el editor de scripts (Reloj de Activadores > Crear nuevo activador).
  2. Configura el activador para ejecutar importarCSV a una hora específica cada día.

Crear un Menú Personalizado en Google Sheets

  1. Añade el siguiente código para crear un menú personalizado que te permita ejecutar las funciones de importar y exportar CSV desde el menú:
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('CSV')
    .addItem('Exportar CSV', 'exportarCSV')
    .addItem('Importar CSV', 'importarCSV')
    .addToUi();
}

Conclusión

Hemos cubierto cómo importar y exportar archivos CSV en Google Sheets, tanto manualmente como automáticamente usando Google Apps Script. También aprendimos a crear un menú personalizado para ejecutar estas funciones con un solo clic. Estos métodos son extremadamente útiles para automatizar el manejo de datos y optimizar tu flujo de trabajo.

Para más tutoriales, plantillas y cursos, visita JuanesGuzman.com. ¡Gracias por ver y nos vemos en el próximo tutorial!

2 comentarios en “Importar y Exportar Archivos CSV en Google Sheets con Google Apps Script”

  1. JOSE DOMINGO PORTELA RIVAS

    Hola. Muchas gracias Jun por tus enseñanzas.

    Al aplicar el codigo function exportarCSV() , siempre me da error la linea:

    const url = `https://docs.google.com/spreadsheets/d/${libro.getId()}/gviz/tq?tqx=out:csv&sheet=${nombreHoja}`;

    ¿Que podrá ser? Gracias por tu respuesta.

    1. Hola!
      Haz la prueba creando manualmente el url con el id del libro y el nombre de la hoja y pegala en el navegador a ver que te sale
      Tambien puedes usar Logger.log(url) para saber exactamente que url te esta sacando
      Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.