[Programmazione] Leggere file xls con PHP
Come buona parte dei miei post anche questo nasce, oltre che con l’intento di fare un po’ di informazione, per ricordarmi di come ho già risolto un problema che mi si è presentato: in effetti la mia memoria di solito è fallace e googolare per cercar la stessa informazione più di una volta non mi piace granchè ^_^
Un attività che spesso capita di dover effettuare è quella di processare “on the fly” un file xls (magari disponibile a seguito dell’upload di un utente) e gestire i dati in esso contenuti (possibilmente strutturati come da noi previsto altrimenti la cosa è improponibile..) per, ad esempio, popolare tabelle di un database o più semplicemente visualizzarli sul nostro sito.
Bene, la soluzione a questo problema è più semplice di quanto si pensi.
Esiste infatti un progetto su Sourceforge che tramite la classe ExcelReader rende disponibile tutto ciò che ci occorre.
Dopo aver incluso i due file reader.php e oleread.inc nel nostro script e saremo quindi pronti per svolgere il lavoro “sporco”.
Per prima cosa inizializziamo la nostra classe e in seguito passiamogli il file da aprire:
$data->read('nome_filel.xls');
la cosa successiva da fare, ovviamente, è effettuare un ciclo per ogni riga e colonna ricordando che:
$data->sheets[0]['numRows']; $data->sheets[0]['numCols'];
rappresentano rispettivamente il numero di righe e colonne contenute nel file xls (in particolare nel primo foglio del documento).
A questo punto possiamo prelevare il valore contenuto in ogni cella accedendovi come faremo con una banalissima matrice:
$data->sheets[0]['cells'][$i][$j];
Un esempio di script per mostrare a video i dati di un file xls in forma tabellare è quindi il seguente:
<?
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read('nome_file.xls');
error_reporting(E_ALL ^ E_NOTICE);
echo "<table>";
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
echo "<tr>";
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "<td>".$data->sheets[0]['cells'][$i][$j]."</td>";
}
echo "</tr>";
}
echo "</table>";
?>
PS: Ovviamente è possibile ciclare anche sui fogli che compongono il file xls..
Popularity: 7% [?]
Tags: Excel, FAQs Help and Tutorials, Open Source, php, SourceForge.net
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.



![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=1a581053-a80a-4f72-acd1-fdf59ecf4c5a)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Del.icio.us Aggiungi '[Programmazione] Leggere file xls con PHP' a Del.icio.us](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/delicious.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a digg Aggiungi '[Programmazione] Leggere file xls con PHP' a digg](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/digg.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a FURL Aggiungi '[Programmazione] Leggere file xls con PHP' a FURL](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/furl.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a blinklist Aggiungi '[Programmazione] Leggere file xls con PHP' a blinklist](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/blinklist.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a reddit Aggiungi '[Programmazione] Leggere file xls con PHP' a reddit](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/reddit.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Feed Me Links Aggiungi '[Programmazione] Leggere file xls con PHP' a Feed Me Links](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/feedmelinks.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Technorati Aggiungi '[Programmazione] Leggere file xls con PHP' a Technorati](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/technorati.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Yahoo My Web Aggiungi '[Programmazione] Leggere file xls con PHP' a Yahoo My Web](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/yahoo_myweb.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Socializer Aggiungi '[Programmazione] Leggere file xls con PHP' a Socializer](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/socializer.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Ma.gnolia Aggiungi '[Programmazione] Leggere file xls con PHP' a Ma.gnolia](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/magnolia.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Google Bookmarks Aggiungi '[Programmazione] Leggere file xls con PHP' a Google Bookmarks](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/google.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Bloglines Aggiungi '[Programmazione] Leggere file xls con PHP' a Bloglines](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/bloglines.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a OKnotizie Aggiungi '[Programmazione] Leggere file xls con PHP' a OKnotizie](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/oknotizie.gif)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Bookmark.it Aggiungi '[Programmazione] Leggere file xls con PHP' a Bookmark.it](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/bookmark.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Ask Aggiungi '[Programmazione] Leggere file xls con PHP' a Ask](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/ask.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Delirious Aggiungi '[Programmazione] Leggere file xls con PHP' a Delirious](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/delirious.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Live-MSN Aggiungi '[Programmazione] Leggere file xls con PHP' a Live-MSN](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/live.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a SlashDot Aggiungi '[Programmazione] Leggere file xls con PHP' a SlashDot](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/slashdot.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Diggita Aggiungi '[Programmazione] Leggere file xls con PHP' a Diggita](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/diggita.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a FaceBook Aggiungi '[Programmazione] Leggere file xls con PHP' a FaceBook](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/facebook.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Wikio Aggiungi '[Programmazione] Leggere file xls con PHP' a Wikio](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/wikio.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a MySpace Aggiungi '[Programmazione] Leggere file xls con PHP' a MySpace](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/myspace.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Twitter Aggiungi '[Programmazione] Leggere file xls con PHP' a Twitter](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/twitter.png)
![Aggiungi '[Programmazione] Leggere file xls con PHP' a Technotizie Aggiungi '[Programmazione] Leggere file xls con PHP' a Technotizie](http://www.vitruviantux.net/wp-content/plugins/social-bookmarking-reloaded/technotizie.png)
Leave a Reply