DEV Community

Luis C arias
Luis C arias

Posted on

Como convertir 500 facturas PDF en Excel automaticamente con Python

Como convertir 500 facturas PDF en Excel automaticamente con Python

Si manejas facturas de proveedores, sabes lo tedioso que es pasarlas a Excel a mano. Yo lo resolvi con 40 lineas de Python y ahorro 6 horas al mes.

El problema

Cada mes recibo entre 50 y 80 facturas PDF de diferentes proveedores. Cada una con formato distinto. Pasarlas a Excel es un infierno: errores de tipeo, datos olvidados, totales que no cuadran.

La libreria clave: pdfplumber

Despues de probar PyPDF2, PyMuPDF y PDFMiner, me quede con pdfplumber porque extrae texto con mejor precision en tablas.

Instalacion:

pip install pdfplumber openpyxl
Enter fullscreen mode Exit fullscreen mode




El codigo base


import os
import re
import pdfplumber
import openpyxl

CAMPOS = {
"numero": r"(?:factura|invoice|numero):?\s*([A-Z0-9-]+)",
"fecha": r"(?:fecha|date):?\s*(\d{1,2}[/.-]\d{1,2}[/.-]\d{2,4})",
"total": r"(?:total):?\s*\$?\s*([\d.,]+)",
}

def extraer(ruta):
with pdfplumber.open(ruta) as pdf:
texto = "\n".join(p.extract_text() or "" for p in pdf.pages)
datos = {}
for campo, patron in CAMPOS.items():
m = re.search(patron, texto, re.IGNORECASE)
datos[campo] = m.group(1) if m else "N/D"
return datos

resultados = []
for archivo in os.listdir("facturas"):
if archivo.endswith(".pdf"):
resultados.append(extraer("facturas/" + archivo))

wb = openpyxl.Workbook()
ws = wb.active
ws.append(["Numero", "Fecha", "Total"])
for r in resultados:
ws.append([r["numero"], r["fecha"], r["total"]])
wb.save("facturas.xlsx")

Enter fullscreen mode Exit fullscreen mode




Resultados reales

  • Antes: 6 horas al mes copiando facturas a mano
  • Despues: 30 segundos ejecutando el script
  • Ahorro: 71 horas al ano

Consideraciones importantes

Formatos variables: Cada proveedor usa su propio formato. Los regex hay que ajustarlos al inicio, pero una vez funcionan, funcionan siempre.

PDFs escaneados: Si la factura es una imagen (no texto), pdfplumber no la lee. Necesitas OCR (Tesseract).

Multiples paises: El script detecta formatos en espanol, ingles y portugues automaticamente.

Conclusion

Automatizar facturas es una de las mejores inversiones de tiempo que puedes hacer. 2 horas configurando, 71 horas ahorradas al ano.

Si quieres la version completa con menu interactivo, deteccion multi-idioma y exportacion a Excel formateado:

Automatizador de Facturas con IA

Top comments (0)