Procesamiento por lotes de informes
Genere informes automáticamente
Procesamiento por lotes de informes es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
Automatizar informes repetitivos
La verdadera ventaja de openpyxl es la automatización: generar docenas de informes similares sin trabajo manual. Por ejemplo, hojas mensuales de ventas por región o un archivo de resumen por cliente.
El patrón es el siguiente: recorra grupos de datos, cree un libro para cada uno y guárdelo con un nombre único.
Agrupar los datos
Los informes por lotes comienzan agrupando registros, por ejemplo, por región. Python estándar gestiona esta tarea de forma sencilla antes de empezar a trabajar con Excel.
records = [
{'region': 'North', 'sales': 100},
{'region': 'South', 'sales': 80},
{'region': 'North', 'sales': 120},
]
groups = {}
for r in records:
groups.setdefault(r['region'], []).append(r['sales'])
for region, sales in groups.items():
print(region, sales, 'total', sum(sales))Un archivo por grupo
Para cada grupo, cree un libro, escriba las filas y guárdelo con un nombre derivado de la clave del grupo. El cuerpo del bucle contiene el mismo código que escribió para un único informe, simplemente repetido.
Nombres de archivo seguros
Las claves de grupo pueden contener caracteres no permitidos en los nombres de archivo. Límpielas primero para que el guardado nunca falle. Es la misma idea de slugify que se utiliza en otros contextos.
import re
name = 'North/West Region 2024'
safe = re.sub(r'[^A-Za-z0-9]+', '_', name).strip('_')
print('report_' + safe + '.xlsx')Una función de plantilla reutilizable
Extraiga el diseño del informe en una función que reciba los datos y devuelva un libro. Llamarla dentro del bucle mantiene la coherencia entre todos los informes y evita repetir código, siguiendo el principio DRY (no se repita).
La función establecería las cabeceras, escribiría las filas, añadiría los totales y los estilos y, después, devolvería wb.
Añadir una fila de resumen
La mayoría de los informes termina con totales. Calcule los agregados en Python o con una fórmula de Excel y escríbalos como última fila. En este caso, calculamos los valores del resumen.
sales = [100, 120, 90, 110]
summary = {
'count': len(sales),
'total': sum(sales),
'average': sum(sales) / len(sales),
'max': max(sales),
}
for k, v in summary.items():
print(k.ljust(8), v)Varias hojas en un archivo
A veces es mejor tener un archivo con una pestaña por grupo que muchos archivos. Recorra los grupos en un bucle y llame a wb.create_sheet(title=group_name) para escribir cada grupo en su propia pestaña. Guarde el archivo una sola vez al final.
Organizar las carpetas de salida
Escriba los informes en un directorio de salida con fecha para que las ejecuciones no se sobrescriban entre sí. Use os.makedirs(path, exist_ok=True) para crearlo de forma segura y, después, añada los nombres de archivo a esa ruta.
import os
base = 'reports'
run_date = '2026-05-30'
out_dir = os.path.join(base, run_date)
path = os.path.join(out_dir, 'north.xlsx')
print('Would create dir:', out_dir)
print('File path:', path)Gestión de errores en lotes
En un lote largo, un grupo con errores no debería detener el resto. Encierre cada informe en un bloque try/except, registre el error y continúe. Una ejecución parcial que termina es mejor que una ejecución completa que falla a mitad de camino.
Programar la tarea
Cuando el script funcione, prográmelo (con cron, Task Scheduler o una tarea de CI) para que se ejecute cada noche o cada mes. Así, el mismo código generará automáticamente informes actualizados sin intervención humana.
Registrar el progreso
Los lotes largos se benefician de mostrar el progreso. Imprima o registre qué grupo se está procesando y cuántos quedan, para poder distinguir entre una ejecución lenta y una bloqueada. Un contador sencillo respecto del total es suficiente.
El registro también le proporciona un historial de los informes que se completaron correctamente si necesita volver a ejecutar solo los que fallaron.
Comprobación rápida
Compruebe sus conocimientos sobre automatización de lotes.
Recapitulación
Ahora puede automatizar la generación de informes:
- Agrupe los datos y, después, recórralos en un bucle para crear un libro (o una hoja) por grupo
- Convierta el diseño en una función de plantilla reutilizable
- Depure los nombres de archivo y escriba los archivos en carpetas de salida con fecha
- Añada filas de resumen, encierre cada informe en un bloque try/except y programe el script
Esto convierte horas de trabajo manual con hojas de cálculo en una tarea que se ejecuta con un solo comando.
Preguntas frecuentes
¿La lección «Procesamiento por lotes de informes» es gratis?
Sí — el texto completo de «Procesamiento por lotes de informes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Procesamiento por lotes de informes»?
Genere informes automáticamente Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Procesamiento por lotes de informes»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Lectura de libros de trabajo
- Escritura y formato de celdas
- Fórmulas y gráficos
- Procesamiento por lotes de informes