Skip to content

About

Pipeline Python per estrarre e normalizzare listini prezzi da PDF, Word (.docx) e CSV in un unico report Excel (.xlsx)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

📑 PriceHarvester — Multi-Format Price List Extractor (PDF / DOCX / CSV ➡️ Excel)

CI Python OpenPyXL Platform License

Pipeline di automazione in Python che scansiona cartelle contenenti listini prezzi e cataloghi fornitori in formati eterogenei (.pdf, .docx, .csv), estrae e normalizza codici articolo, unità di misura e prezzi (in formato italiano 1.250,50 € o internazionale), e pubblica un unico report Excel .xlsx multi-foglio con tracciamento delle righe scartate.

English: Automated document ingestion pipeline in Python that extracts product codes, units and prices from heterogeneous supplier files (.pdf, .docx, .csv), normalizes European/US currency formats, and generates a clean multi-sheet .xlsx workbook and .json audit report.


✨ Caratteristiche Principali

  • 📂 Ingestione Multi-Formato:
    • PDF (.pdf): Estrazione di righe strutturate da stream testuali PDF.
    • Word (.docx): Parsing nativo delle tabelle OpenXML (word/document.xml) senza bisogno di Microsoft Word installato.
    • CSV (.csv): Riconoscimento automatico del delimitatore (; o ,) e delle colonne (Codice/SKU, Descrizione, UM, Prezzo).
  • 💶 Normalizzazione Intelligente dei Prezzi:
    • Converte in Decimal esatto sia formati europei (1.450,00 €) sia formati anglosassoni (1,450.00), scartando valori nulli, negativi o non numerici (N/D).
  • 📊 Pubblicazione Excel Multi-Foglio (.xlsx) + Audit JSON:
    • LISTINO_UNIFICATO: catalogo pulito ordinato per codice articolo con formattazione valuta.
    • RIEPILOGO_FONTI: conteggio di voci valide e scarti per ciascun file sorgente.
    • SCARTI_ANOMALIE: elenco evidenziato delle righe sporche o incomplete con il motivo dello scarto.
  • ⚡ Dati Demo Inclusi:
    • Se lanciato senza argomenti, genera ed elabora automaticamente 3 listini di esempio in dati_esempio/ (listino_hardware_fornitore.pdf, listino_servizi_it.docx, listino_licenze_cloud.csv).

🚀 Avvio Rapido (Linux & Windows)

git clone https://github.com/Symon180/PriceHarvester.git
cd PriceHarvester
pip install -e ".[dev]"

# Esegue subito l'estrazione sui 3 file di esempio (PDF + DOCX + CSV):
./avvia.sh                     # Linux / macOS
avvia.bat                      # Windows

Il file Excel viene generato in output/listino_unificato.xlsx (insieme a output/listino_unificato.json).

Opzioni CLI

python -m price_harvester -i /percorso/cartella_listini -o /percorso/output.xlsx

🧪 Test

pytest

📄 Licenza

Rilasciato sotto licenza MIT — Autore: Simone Mariotti.

About

Pipeline Python per estrarre e normalizzare listini prezzi da PDF, Word (.docx) e CSV in un unico report Excel (.xlsx)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages