Importare fatture elettroniche XML in excel

Importare fatture elettroniche XML in excel

Con questo semplice programma in Python per importare fatture elettroniche in excel possiamo decidere i campi da importare e la cartella da elaborare.

Il programma scorre tutti i file XML contenuti nella cartella e genera un file CSV (apribile da Excel) con tutti i dati che ci interessano.

Un semplice programma in Python

Nel programma indichiamo in una lista di Python una serie di Tuple (coppie di valori) contenenti l’elemento padre del file XML e il singolo elemento con il dato di nostro interesse.

Non è l’implementazione migliore della libreria eTree ma funziona egregiamente per il nostro scopo ed è un ottimo esempio di utilizzo di Liste, Tuple, Cicli, scrittura di stringhe e accesso ai file in Python.

Se siete totalmente digiuni di Python ecco i passi per poterlo utilizzare:

Scaricate l’ultima versione di Python (il programma è testato con la versione 3.7 per windows) da:
https://www.python.org/downloads/

Una volta eseguita l’installazione potete creare un file nella stessa cartella di installazione di Python (nel nostro esempio C:\PYTHON37).

Chiamiamo questo file: exportFatture.py e incolliamoci il codice riportato in fondo a questo articolo avendo cura di cambiare solo il percorso dove andremo a mettere i nostri file di fatture in formato XML.

Nel codice in questione sono anche indicati, a titolo d’esempio, i campi da esportare.

Dopodichè accediamo alla console di comando (tasto destro sul pulsante start di Windows e selezioniamo Esegui).

Digitiamo il comando:cmd e premiamo invio.

Dopodichè possiamo scrivere: cd \python37 (o il nostro percorso d’installazione)

Infine possiamo eseguire:python esportFatture.py

L’output in formato CSV

Alla fine dell’elaborazione avremo i campi interessati esportati in formato .csv che potremo aprire con Excel.

Sperando di aver fatto cosa gradita a coloro che abbiano questa necessità vi invitiamo come sempre a lasciare un commento o contattarci attraverso l’apposito form del nostro sito.

### semplice programma in Python per importare fatture elettroniche in excel

import os,glob
import xml.etree.ElementTree as ET

DatiFatture = []

###Qui indichiamo in coppie (tuple) il dato che ci serve e l'elemento all'interno del quale è contenuto.

StrutturaCampi = [
('CessionarioCommittente','Denominazione'),
('DatiGenerali','ImportoTotaleDocumento'),
('DatiPagamento','DataScadenzaPagamento')
]

### Qui indichiamo la certella con i file XML da elaborare
path = "C:\\Users\\user\\Desktop\\FattureXML"

for filename in glob.glob(os.path.join(path, "*.xml")):
tree = ET.parse(filename)
root = tree.getroot()

pre = False
i = 0
e = ET.ElementTree(tree)
for elt in e.iter():
if elt.tag == StrutturaCampi[i][0]:
pre = True
if elt.tag == StrutturaCampi[i][1] and pre:
DatiFatture.append((elt.tag,elt.text))
print (("%s: '%s'") % (elt.tag, elt.text))
pre = False
i= i +1
if i == len(StrutturaCampi):
i = 0

### Il file si chiamerà: export.csv e sarà nella stessa cartella di input
out_file = open(os.path.join(path, "export.csv"),"w")

for NomeCampo in StrutturaCampi:
out_file.write('%s;'%(str(NomeCampo[1])))
out_file.write('\n')

i = 0
for TupleValues in DatiFatture:
out_file.write('%s;'%(TupleValues[1]))
i = i +1
if i == len(StrutturaCampi):
i = 0
out_file.write('\n')

out_file.close()

 

Per chi fosse interessato ho pubblicato qui un modo per leggere le righe di dettaglio della fattura utilizzando la libreria xmltodict.