L'evoluzione del sistema informativo aziendale in genere procede dal cartaceo al foglio excel e dal foglio excel a un gestionale vero e proprio.
Per poter fare quest'ultimo passaggio nella maniera più graduale e indolore possibile, bisogna riuscire a leggere i dati contenuti in questi fogli excel per poi immagazzinarli nel database del gestionale.
Accedere a un foglio excel può diventare un problema dal momento che le vecchie versioni del suo formato sono chiuse e binarie.
La stessa Microsoft ci viene però in aiuto grazie ai driver ODBC per Excel.
Installando MS Office o il pacchetto Microsoft Access Database Engine saremo in grado di registrare come sorgenti dati ODBC dei normali fogli Excel e potremo quindi leggerne e manipolarne i dati attraverso dei normali statement SQL .
Per capire più nel dettaglio questo approccio è sufficiente guardare le schermate di questo semplice tutorial .
Alcuni aspetti interessanti di questo approccio sono:
- l'utilizzo dei tipi dato SQL;
- l'esecuzione automatica delle formule eventualmente presenti nel foglio excel;
- la possibilità di modificare il contenuto del foglio excel attraverso, per esempio, lo statement di INSERT INTO;
In modo trasparente è possibile quindi integrare la gestione dei processi aziendali fatta attraverso fogli excel con gestionali su database relazionali.
L'unica tipologia di casi in cui questa soluzione non basta è quando si vogliono poter leggere e gestire anche le proprietà di una cella, come per esempio i collegamenti ipertestuali: in Excel al valore contenuto in una cella si può associare il percorso di un file su disco o un URL. Questo tipo di informazione, assieme alle proprietà di formattazione della cella, si perdono con l'approccio appena discusso.
Per poter gestire anche questi dati bisogna utilizzare un approccio più specifico e in particolare, se si programma in PHP, ci si può affidare all'utilizzo della libreria PHPExcel in grado di leggere quasi tutti i formati Excel e soprattutto di accedere ai dati delle celle oltre al valore contenuto: font, bordi, colori, hyperlinks, ecc.