Escencial Latam
ESCENCIAL LATAM
01 / 14
Escencial Latam

CLASE N5  ·  CLASE FINAL

Lectura de Datos y
Generación de Informes
Automatizados

doGet · Panel de Usuario · Panel de Administrador · Tres Métodos · codigo.gs · plantilla.html · PDF · Email Automático

Eje Central: Transformar el sistema de carga de datos en un sistema completo de lectura, análisis y generación automática de informes profesionales.

🔄 Repaso — Clase Anterior
¿Qué construimos hasta ahora? El sistema de carga con doPost()

📋 Lo que ya tenemos funcionando

Construimos un formulario HTML conectado a Google Sheets mediante Google Apps Script. El usuario completa el formulario, los datos se envían por JSON y la función doPost() los escribe en la hoja automáticamente.

🔗 El flujo que ya funciona

  • Usuario completa el formulario HTML
  • fetch() envía los datos como JSON
  • doPost(e) recibe y procesa
  • appendRow() guarda en Sheets

⚠️ La limitación que teníamos

El sistema solo guardaba información, pero no la utilizaba. No podía leer los datos ni generar informes a partir de ellos.

👉 Eso es exactamente lo que resolvemos hoy.

🔄 Repaso + Nuevo Concepto
La diferencia clave: doPost() vs doGet()

📤 doPost(e) — Ya lo usamos

Se activa cuando el formulario envía datos. Escribe nueva información en la hoja. Dirección: HTML → Sheets

VER CÓDIGO →

📥 doGet(e) — Nuevo hoy

Se activa cuando se solicita información. Lee y devuelve datos de la hoja. Dirección: Sheets → HTML

VER CÓDIGO →

💡 Cómo llamar a doGet desde el HTML

Se usa fetch(URL + '?accion=obtenerDatos') con el método GET. El parámetro accion le dice al servidor qué operación ejecutar. Así el mismo script puede manejar múltiples tipos de consulta.

Diapositiva 04 — Arquitectura de Paneles
Panel de Usuario vs Panel de Administrador

👤 Panel de Usuario

Cada persona ve únicamente su propia información.

  • Sus propios registros e informes
  • Descargar su PDF personal
  • Consultar historial propio
  • Solicitar generación de informe

🛡️ Panel de Administrador

Acceso completo a todos los registros del sistema.

  • Ver todos los registros de todos los usuarios
  • Filtrar y buscar por cualquier campo
  • Generar informes masivos
  • Controlar estados: Pendiente / Enviado

📊 Ejemplo de vista del administrador

ID
Nombre
Proyecto
Estado
001
Juan García
Sistema A
✅ Enviado
002
María López
Sistema B
⏳ Pendiente
Diapositiva 05 — Metodología
Tres formas de generar informes
  • 1

    Informe desde la página HTML — El informe se genera en el navegador con JavaScript. Velocidad instantánea, exportable como PDF con window.print(). No envía email automáticamente.

  • 2

    Informe con Autocrat — Extensión de Google Sheets que fusiona datos con una plantilla de Google Docs. Envía el resultado por email automáticamente. Puede demorar hasta 30 minutos.

  • 3

    Informe con Google Apps Script — codigo.gs + plantilla.html — El método más potente. Lee los datos, aplica lógica personalizada, genera el PDF y lo envía por email. Automatización total.

🎯 Regla práctica: Método 1 si el usuario descarga él mismo · Método 2 si necesitás email sin programar · Método 3 si necesitás lógica + email + calidad profesional

Diapositiva 06 — Método 1
Método 1: Informe desde la página HTML

Ventajas

  • Generación instantánea
  • Sin cuotas ni límites externos
  • Personalización total con CSS
  • PDF desde el navegador (Ctrl+P)
  • No requiere permisos adicionales

⚠️ Limitaciones

  • No envía email automáticamente
  • Calidad del PDF depende del browser
  • No queda registro del envío

💻 Ejemplo de código — Generar informe desde HTML

JavaScript procesa los datos ya cargados en la página y construye el HTML del informe dinámicamente. El usuario presiona el botón y el informe aparece en pantalla listo para imprimir.

VER CÓDIGO →

📌 Ideal para

Sistemas donde el usuario genera y descarga su propio informe en el momento. Ejemplo: el alumno consulta sus resultados y descarga su constancia al instante.

Diapositiva 07 — Método 2
Método 2: Informe con Autocrat

🔧 ¿Cómo configurar Autocrat?

  • Instalar desde Google Workspace Marketplace
  • Crear plantilla en Google Docs con marcadores <<Nombre>>, <<Resultado>>
  • En Sheets: Extensiones → Autocrat → Nueva tarea
  • Configurar: plantilla, columna de email, carpeta destino
  • Activar el trigger (automático o manual)

Ventajas

  • Sin necesidad de escribir código
  • Envío de email automático
  • Genera Google Doc o PDF
  • Fácil de configurar visualmente

⚠️ Limitaciones

  • Hasta 30 min de demora
  • Menor control del diseño
  • Solo hace reemplazo simple de variables
  • Sin lógica de cálculo propia

📌 Ideal para

Certificados, constancias simples, informes administrativos repetitivos donde la velocidad no es crítica y se necesita envío por email sin programar.

Diapositiva 08 — Método 3
Método 3: codigo.gs + plantilla.html

Flujo completo del Método 3

1Datos llegan a Google Sheets desde el formulario HTML (doPost)
2codigo.gs lee los datos y aplica lógica personalizada
3Se carga plantilla.html e inyectan los datos procesados
4Apps Script convierte el HTML en PDF
5MailApp envía el PDF por email al destinatario

⚙️ codigo.gs — Estructura base

CONFIG, obtenerHoja() y procesarPendientes() que es el motor de todo el sistema.

VER CÓDIGO →

🎨 plantilla.html — Diseño dinámico

Archivo HTML dentro de Apps Script con sintaxis especial <?= variable ?> para datos dinámicos.

VER CÓDIGO →
Diapositiva 09 — Sistema Universal
El generador universal de informes con archivo TXT

🌟 La idea central

En lugar de crear un sistema rígido para un solo tipo de informe, construimos un motor universal. El archivo de configuración TXT define qué datos usar y cómo estructurar el informe. El mismo motor codigo.gs + plantilla.html puede adaptarse a cualquier proyecto.

📄 Ejemplo de archivo de configuración TXT

TITULO: Informe de Evaluación
ORGANIZACION: Mi Empresa S.A.
LOGO: https://url-del-logo.png

CAMPOS:
  - NOMBRE
  - APELLIDO
  - EMAIL
  - PUNTAJE
  - NIVEL

TEXTOS_POR_NIVEL:
  Alto: Excelente desempeño...
  Medio: Buen desempeño...
  Bajo: Se recomienda revisión...

🔄 ¿Para qué tipos de informe sirve?

  • Evaluaciones psicométricas o académicas
  • Seguimiento de proyectos
  • Certificados personalizados
  • Reportes de rendimiento laboral
  • Informes técnicos con datos variables
  • Reportes de métricas por persona
Diapositiva 10 — Función Central
La función clave: procesarDatosManual()

🔑 ¿Qué hace esta función?

Es el corazón del sistema. Puede ejecutarse manualmente desde el menú de Apps Script o automáticamente mediante un trigger. Orquesta todo el proceso de generación y envío.

📋 Sus responsabilidades

  • Lee la última fila de la hoja
  • Extrae nombre, email y datos
  • Llama a la lógica del informe
  • Genera el HTML con la plantilla
  • Convierte el HTML en PDF
  • Envía el PDF por email
  • Marca la fila como "Enviado"

💻 Ver el código completo

Código real de procesarDatosManual() con todos los pasos comentados y el manejo de errores.

VER CÓDIGO →

El Trigger automático — instalarTrigger()

Para que el sistema funcione sin intervención manual, se instala un trigger que ejecuta procesarDatosManual() automáticamente cada 1 hora. Se configura una sola vez desde el menú del proyecto en Apps Script.

Diapositiva 11 — Generación y Envío
Generar el PDF y enviarlo por email automático

📄 crearPDF() — Convertir HTML a PDF

Apps Script puede convertir cualquier HTML en un PDF descargable. El archivo se crea en Drive, se convierte y se elimina el temporal.

VER CÓDIGO →

📧 enviarEmail() — MailApp

Envío nativo desde la cuenta de Google del desarrollador. Soporta cuerpo HTML personalizado y PDF adjunto en el mismo llamado.

VER CÓDIGO →

⚠️ Límites importantes del servicio de email

100
emails/día
cuenta gratuita
1500
emails/día
Google Workspace
25 MB
tamaño máximo
de adjuntos
Diapositiva 12 — Comparativa
Comparación de los tres métodos
Criterio
HTML Directo
Autocrat
Apps Script
⚡ Velocidad
Instantánea
Hasta 30 min
1–2 min
📧 Envío por email
❌ No
✅ Sí
✅ Sí
💻 Requiere código
Poco
❌ No
✅ Sí
🎨 Personalización
⭐⭐⭐⭐⭐
⭐⭐
⭐⭐⭐⭐⭐
🧠 Lógica de cálculo
En JS
Solo reemplazo
Total
🤖 Automatización
⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
Diapositiva 13 — Aplicaciones Reales
¿Para qué sirve este sistema en el mundo real?

🏢 Evaluación de personal

El sistema procesa datos de una evaluación de desempeño y envía automáticamente el informe personalizado a cada empleado al completar el formulario.

🎓 Sistemas académicos

Los alumnos completan una evaluación y reciben por email su informe de resultados en PDF con fortalezas y áreas de mejora detalladas.

📊 Seguimiento de proyectos

El panel de administrador visualiza el estado de todos los proyectos activos con filtros por responsable, estado y fecha en tiempo real.

🏅 Certificados automáticos

Cuando alguien completa un curso, el sistema genera el certificado personalizado y lo envía por email sin intervención humana.

🔍 Informes técnicos

Cada vez que se carga una inspección o auditoría, el sistema genera el informe formal en PDF listo para archivar o enviar al cliente.

🚀 El valor real del sistema

Reduce horas de trabajo manual, elimina errores de transcripción y garantiza que cada persona recibe exactamente la información que le corresponde, al instante.

Diapositiva 14 — Cierre · Clase Final
Gracias por ser parte del Laboratorio

🏆 Lo que construimos en este laboratorio

Formulario HTML conectado a Google Sheets
Backend con doPost() y doGet() en Apps Script
Panel de usuario y panel de administrador
Tres métodos para generar informes
Generación de PDF descargable automático
Envío de email con MailApp
🔧 Próximo paso: validaciones avanzadas y autenticación de usuarios 📊 Integración con dashboards y métricas en tiempo real 🤖 Automatizaciones más inteligentes con IA generativa
"Todo sistema puede evolucionar. La clave está en repetir, medir y mejorar."