Elaborazione di report XML con Excel

di Massimo Furia

scritto il

I file XML ci permettono di esportare i dati tra applicazioni e sistemi anche molto diversi tra loro.

Sempre più spesso capita di lavorare con applicazioni complesse come quelle di business intelligence o di reportistica contabile ed extra contabile. Questo genere di applicativi, inclusi molti software gestionali e database, permettono l’esportazione dei dati grezzi in formati più lavorabili come fogli MS Excel o database di MS Access. Tuttavia non sempre è possibile avvantaggiarci di questa funzionalità e l’unica possibilità che si delinea all’orizzonte è quella di alzare il telefono e chiamare il consulente IT per guidarci passo-passo nelle operazioni per l’esportazione dei dati nel formato che ci serve.

L’alternativa è imparare a gestire i dati in un formato che è congeniale e facilmente comprensibile da tutti i tipi di applicativi: l’XML, acronimo di eXtensible Markup Language, ovvero «Linguaggio di marcatura estensibile». Se ne sente parlare perché è oramai lo standard per l’interscambio di dati tra applicazioni. Nato inizialmente per facilitare lo scambio di dati sul Web, XML è un linguaggio che consente di memorizzare informazioni in strutture gerarchiche: in modo molto intuitivo i dati sono disposti in un albero con nodi “padre” e nodi “figlio”, un po’ come succede per il nostro albero genealogico di famiglia. Per facilità di comprensione abbiamo a disposizione un file di esempio.

=> Scarica l’esempio

Con un doppio clic sull’icona del file anagrafica.xml in automatico dovrebbe aprirsi una sessione di Internet Explorer (o Firefox) che ci mostra il contenuto del file. Figura 1. Albero XML Albero XML

=> Fare business intelligence con Excel

Questo è file estremamente semplice ma gli applicativi di cui abbiamo accennato sopra possono generare file molto più complessi ed articolati a seconda della tipologia e profondità dei dati che trattiamo. In questo esempio abbiamo una anagrafica cliente in cui ogni nodo esprime un dato. Secondo la logica “padre e figlio” il nodo <anagrafica> è padre di tutti quelli sottostanti, il nodo <cliente> è padre dei dettaglio dei dati mentre <fatturato> è padre di <annuo>, <ultimoanno>, etc. Un po’ come le scatole cinesi un dato ne contiene altri. Possiamo approfondire le nozioni su XML su xml.html.it.

Capito il meccanismo, diventa semplice leggere i dati rappresentati ma, dal’altro canto, non possiamo che leggerli e non compiere nessuna operazione su di essi. Con Excel possiamo acquisire e gestire dati in formato XML in modo tale da poterli utilizzare per tutte le operazioni che normalmente effettuiamo con i fogli elettronici. In particolare possiamo:

  • Aprire i dati XML all’interno di Excel
  • Visualizzare i dati in una cartella in sola lettura
  • Creare un mapping dei dati e importarli

Aprire i file XML con Excel

Una volta aperto Excel clicchiamo sul menu File>Apri. Dall’elenco “Tipo di file” selezioniamo “XML” ed infine cerchiamo il nostro file anagrafica.xml. A questo punto Excel ci propone tre modi di aprire il file, scegliamo “Elenco XML“.

=> Creare la prima nota cassa in Excel

Figura 2. Aprire il file come elenco

Aprire il file come elenco

Se, una volta premuto OK, viene visualizzato un messaggio che ci richiede uno schema, miente panico, Excel può costruire automaticamente lo schema dei dati a partire dai contenuti stessi. Possiamo cliccare nuovamente su OK. Figura 3. Generazione automatica dello schema

Generazione automatica dello schema

Alla fine i dati ci vengono mostrati già già organizzati ed ordinati. Figura 4. I dati dell’esempio riportati in tabella

I dati dell'esempio riportati in tabella

A questo punto possiamo ordinare i dati o filtrarli come si fa con le tabelle pivot inserendo anche dei filtri personalizzati. Basta cliccare sull’invito a tendina dell’intestazione colonna e il sottomenu ci mette a disposizione tutte le scelte del caso. Figura 5. Operazioni sulla colonna

Operazioni sulla colonna

Sono ovviamente possibili tutte le altre operazioni che effettuiamo normalmente sui dati dei fogli elettronici. In definitiva, possiamo utilizzare questa opzione di lettura dei dati XML tutte le volte che vogliamo trattare dati specifici come fossero un foglio elettronico statico, i cui dati non hanno bisogno di aggiornamenti dinamici. Un report di fine attività, per esempio.

Visualizzare i dati in una cartella in sola lettura

Questa seconda modalità risulta particolarmente comoda quando vogliamo offrire la visualizzazione dei dati ma senza l’opportunità di manipolarli a meno che il file venga salvato e rinominato in altra maniera. In questo modo l’originale non viene comunqe intaccato. Per l’apertura del file ci comportiamo come in precedenza, con la sola differenza che la voce selezionata nella maschera iniziale (Figura 2) sarà quella relativa alla visualizzazione in una cartella in sola lettura. Quando apriamo i dati il file XML non viene più presentato come un elenco vero e proprio ma ogni nodo viene “spalmato” sul foglio elettronico ed è possibile che molti dati vengano ridondati. Figura 6. Rappresentazione in sola lettura

Rappresentazione in sola lettura

Mapping dei dati

Questa modalità risulta più comoda e flessibile, soprattutto se abbiamo una fonte dei dati che viene costantemente aggiornata e non vogliamo ricreare il foglio elettronico ad ogni aggiornamento del report o ricreare le formule per i calcoli necessari. Fare il “Mapping dei dati” significa dire ad una applicazione dove si trova la sorgente dei dati fornendole il percorso all’interno della rete, del Web o del pc personale. Apriamo di nuovo il file XML da Excel, ma questa volta nella maschera in figura 2 scegliamo Usa riquadro attività origine XML. Dando OK il nostro foglio elettronico non sembra aver dato nessun risultato, difatti rimane vuoto. Ma guardando meglio, alla sinistra del foglio si è aperto un riquadro di mappatura dei dati, ovvero la struttura dei dati con tutti i nodi disponibili.

=> Come creare indicatori economici di performance in Excel

Figura 7. Riquadro di mapping

Riquadro di mapping

Quello che possiamo fare è trascinare i soli nodi che ci interessano sul foglio di lavoro, per esempio: ragione sociale, partita iva e utile.

Figura 8. Colonne aggiornabili dinamicamente

Colonne dei campi aggiornabili dinamicamente

Ora aggiorniamo il foglio di calcolo da menu Dati>XML>Aggiorna dati XML. I nostri dati saranno ora visibile e pronti per tutte le operazioni che dobbiamo fare. Una volta salvato il file possiamo aggiornare il contenuto semplicemente ripetendo l’ultima operazione. In un click otteremo il foglio con i nuovi dati.