Herramienta de automatización en Python que limpia archivos Excel y CSV con datos sucios, normaliza su contenido automáticamente y genera un reporte PDF con estadísticas y gráficos de distribución.
- Detección automática de tipos — identifica fechas, RUTs, teléfonos, emails, precios y texto sin configuración manual
- Limpieza automática — elimina duplicados, filas vacías y normaliza cada columna según su tipo
- Reporte PDF — genera un reporte con tabla de nulos y gráficos de distribución por columna numérica
- Log de cambios — registra en un .txt cuántos duplicados y filas vacías se eliminaron
- Soporte múltiple — procesa archivos .xlsx y .csv, uno o varios a la vez
| Tipo detectado | Qué hace |
|---|---|
| Texto | Elimina espacios extra, aplica Title Case |
| Fecha | Estandariza al formato YYYY-MM-DD (soporta +15 formatos) |
| RUT | Estandariza al formato XX.XXX.XXX-X |
| Teléfono | Estandariza al formato +569XXXXXXXX |
| Convierte a minúsculas y elimina espacios | |
| Precio | Limpia símbolos ($, CLP, USD) y convierte a float |
Excel-Cleaner-Reporter/
├── cleaner.py # Detección automática y normalización de datos
├── reporter.py # Generación del reporte PDF
├── main.py # Script principal, orquesta todo
├── input/ # Coloca aquí tus archivos Excel o CSV
├── output/ # Aquí se generan los archivos limpios, logs y PDFs
└── requirements.txt
git clone https://github.com/JeanBiza/Excel-Cleaner-Reporter.git
cd Excel-Cleaner-Reporterpip install -r requirements.txt- Coloca tu archivo
.xlsxo.csven la carpetainput/ - Ejecuta el script:
python main.py- Si hay múltiples archivos, el programa te pregunta cuál procesar (o todos con
0) - En
output/encontrarás:clean_NombreArchivo.xlsx→ Excel limpiolog_NombreArchivo.txt→ resumen de cambiosReport_NombreArchivo.pdf→ reporte con estadísticas y gráficos
Log generado:
Archivo: clientes.xlsx
Filas originales: 100
Duplicados eliminados: 14
Filas vacías eliminadas: 5
Filas finales: 81
Reporte PDF incluye:
- Resumen de estadísticas del proceso
- Tabla de completitud por columna (% de datos no nulos)
- Histogramas de distribución por columna numérica
pandas
openpyxl
reportlab
matplotlib
Jean — @JeanBiza