.: HosiriS :.

Informatica e non solo

Convertire file excel in SQL

Posted by hosiris su maggio 25, 2011

Spesso capita che i fogli di calcolo vengano usati per memorizzare dati… Non è il suo compito, ma vista la forma tabellare viene naturale utilizzarli con questo scopo! Il problema si presenta quanto i dati crescono al punto da rendere inefficiente l’utilizzo di quelle tabelle e spesso si cerca il modo di trasportare i dati su una struttura dati reale.
Analizziamo quali possibili tecniche possono essere sfruttate per eseguire questa attività!

Il metodo in assoluto più semplice prevede che il file venga salvato con un formato “csv” (quel tipo di formato in cui si può trovare uno schema nella sequenza dei dati grazie alla divisione tramite sgni di punteggiatura). Questo tipo di file può essere successivmente dato in pasto a client quali “phpMyAdmin” che popola un database preventivamente generate con i campi omogenei ai dati da inserire.

Se si stanno utilizzando prodotti Microsoft si può utilizzare una tecnica descritta nel loro supporto tecnico. Naturalmente per poter utilizzare questa tecnica sarà necessario una istanza di Microsoft SQL server. Tramite il seguente comando è possibile importare il file xls direttamente all’interno del DB:

SELECT * INTO XLImport FROM EXCELLINK...[Customers$]

dove XLImport è il XLS di origine.

Infine, il mio metodo preferito, possiamo sfruttare la libreria PHP_ExcelReader. Preferisco questa tecnica perché mi permette di mantenere il controllo sul salvataggio dei dati. E’ possibile fare dei check sulla validità dei dati o elaborare i dati…
L’installazione è semplicissima, basta utilizzare il gestore PEAR:

$ pear install Spreadsheet_Excel_Writer

Eseguiamo i cambiamenti richiesti in fase di installazione. Purtroppo la sola inclusione del file “reader.php” genera degli errori, sarà necessario salvare il file “oleread.inc” in una cartella di PHP seguendo la struttura “Spreadsheet/Excel/Reader/OLERead.php”.
Ad esempio potremmo eseguire uno script che mostri il numero di righe, colonne e fogli in un file excel:

read('file.xls');

// print number of rows, columns and sheets
echo "Number of sheets: " . sizeof($excel->sheets) . "\n";
for ($x=0; $xsheets); $x++) {
  echo "Number of rows in sheet " . ($x+1) . ": " . $excel->sheets[$x]["numRows"] . "\n";
  echo "Number of columns in sheet " . ($x+1) . ": " . $excel->sheets[$x]["numCols"] . "\n";
}

Nel caso vogliate approfondire questa tecnica, vi consgilio di tenere tra i preferiti il seguente link perché non esiste molta documentazione e scoprire le potenzialità della librera può risultare difficile!

Alla prossima

2 Risposte to “Convertire file excel in SQL”

  1. […] Continua a Leggere Posted in Recensione Programmi […]

  2. […] Anche se io in questi casi lo faccio a mano ecco un modo più phigo di importare un file excel in SQL. […]

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: