Skip to content

About

Automatización con Python: convierte un CSV de ventas en un reporte de Excel con totales, resúmenes y gráfica.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

📊 Reporte de ventas automático: de CSV a Excel con Python

Script que convierte un archivo CSV de ventas en un reporte de Excel listo para presentar, con totales, resúmenes y gráfica. Sustituye el trabajo manual de copiar, pegar y sumar en hojas de cálculo.

Proyecto de práctica personal. Los datos de datos/ventas_ejemplo.csv son ficticios y solo sirven para probar el script.

✨ Qué hace

Lee un CSV con estas columnas:

fecha producto categoria cantidad precio_unitario
2026-07-01 Cuaderno profesional Papeleria 12 45.00

Y genera un .xlsx con tres hojas:

Hoja Contenido
Ventas Datos originales, importe por venta (fórmula =D*E), filtros y total general
Por producto Unidades e importe por producto, ordenado de mayor a menor, con gráfica de barras
Por mes Unidades e importe por mes

Además:

  • Valida los datos: si una fila tiene un número mal escrito, indica la línea exacta del error.
  • Usa fórmulas de Excel (SUM, multiplicaciones), así el cliente puede editar datos y los totales se recalculan.
  • Aplica formato de moneda, encabezados con color, columnas ajustadas y fila superior fija.

🛠️ Tecnologías

  • Python 3.10+
  • openpyxl para crear el archivo de Excel
  • csv, argparse, datetime (biblioteca estándar)
  • Pruebas con unittest

▶️ Cómo ejecutarlo

# 1. Clona el repositorio
git clone https://github.com/arumando/python-reporte-excel.git
cd python-reporte-excel

# 2. (Opcional) Crea un entorno virtual
python -m venv venv
venv\Scripts\activate        # Windows
source venv/bin/activate     # Linux / macOS

# 3. Instala la dependencia
pip install -r requirements.txt

# 4. Genera el reporte con los datos de ejemplo
python generar_reporte.py datos/ventas_ejemplo.csv -o reporte_ventas.xlsx

Salida esperada:

Reporte creado: reporte_ventas.xlsx
  Ventas procesadas: 30
  Importe total: $24,699.50

Ejecutar las pruebas:

python -m unittest -v

📸 Capturas

[PENDIENTE: captura de la hoja "Ventas"]

[PENDIENTE: captura de la hoja "Por producto" con la gráfica]

📚 Qué aprendí

  • Leer y validar archivos CSV con csv.DictReader, con mensajes de error útiles para el usuario.
  • Crear libros de Excel con estilos, formatos de moneda, filtros y gráficas usando openpyxl.
  • Agrupar y resumir datos (similar a un GROUP BY de SQL) con diccionarios de Python.
  • Separar el código en funciones pequeñas que se pueden probar por separado.

🚀 Posibles mejoras

  • Leer también archivos .xlsx de entrada, no solo CSV.
  • Agregar un resumen por categoría y una gráfica de línea por mes.
  • Enviar el reporte por correo de forma automática.

👤 Autor

José Armando García Bandera — github.com/arumando

About

Automatización con Python: convierte un CSV de ventas en un reporte de Excel con totales, resúmenes y gráfica.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages