- Objetivo
- Mostrar paso a paso cómo se genera un reporte de tipo PDF usando el lenguaje de programación Python.
En este post les presento la forma de generar reportes automatizados en PDF a partir de archivos .csv. Se tiene datos de resultados de análisis de laboratorio como ejemplo práctico.
A partir de datos en Excel (sea .xlsx o .csv) se generó un reporte del siguiente tipo:
Ahora el cómo se generó si que fué algo complicado de realizar. Se buscó librerías que permitan generar reportes
y sólo había información de implementaciones para plataformas web, ya que un ejemplo sería el de emitir boletas electrónica.
Encontré la librería ReportLab que resultó amigable pero no estaba preparado para lo que me esperaba: elaborar un PDF.
ReportLab es una una herramienta poderosa y flexible que permite crear documentos en el Formato de Documento Portátil de Adobe (PDF) usando el lenguaje Python.
Entre sus principales características se tiene:
Los documentos que se pueden generar se presentan a continuación:
En el editor web Google Colab, importamos nuestros datos. En mi caso he conectado mi cuenta de Google Drive a
la libreta para acceder a mis datos. A continuación se presenta la tabla a extraer datos.
Se procede a revisar que cada columna presente el tipo de dato correcto, ya que en algunas partes se usan los
datos numéricos para realizar operaciones matemáticas.
Se procedió a identificar los puntos a presentar en el reporte:
Ya que estamos usando Colab, la instalación se realiza mediante el siguiente comando:
Se busca generar un reporte para cada fila en la tabla mostrada previamente. Para el presente ejemplo se tiene 10 filas por lo que debe realizarse 10 reportes. Dicha función debe ser sencilla de usar así que la he diseñado para que solo reciba por argumento la ruta del archivo .csv. La función generará un reporte para cada fila que tenga el archivo .csv que se le adjunte, y en la misma carpeta donde se ubique dicho archivo.
A continuación se presenta una parte de la función elaborada. Al final del post adjunto el
enlace para el acceso al código completo.
Finalmente se realiza la generación del reporte.
Se han generado 10 reportes para cada fila dentro del archivo .csv.
El código escrito para el presente ejemplo se tornó muy extenso, llegando a alcanzar solamente para la función
alrededor de 735 líneas de código (incluyendo comentarios).
Reportlab
Muchas gracias por leer. Saludos!