Creare file excel con PHP
In quest'articolo vedremo come poter creare dinamicamente dei fogli di calcolo in PHP. Passiamo subito a conoscere i requisiti per tale compito:
In quest'articolo vedremo come poter creare dinamicamente dei fogli di calcolo in PHP. Passiamo subito a conoscere i requisiti per tale compito:- occorre avere installato sul proprio sistema PHP (versione 4.0.0 o superiore). Per conoscere come installare PHP sul proprio sistema Windows, si legga l'articolo "PHP 5 e MySQL su Windows? Installazione con apache 2 in 10 minuti su Windows";
-
occorre avere installato PEAR,
il repository ufficiale di classi PHP. A tal fine
è sufficiente recarsi nella directory di
installazione di PHP e avviare lo script batch
go-pear.bat: un wizard vi guiderà all'installazione via rete dei pacchetti necessari e provvederà ad editare correttamente il file di configurazionephp.ini; -
dopo aver installato PEAR, occorre installare i
package OLE e Spreadsheet_Excel_Writer:
è possibile farlo a linea di comando digitando:
-pear install OLE-beta(se non specificate-betariceverete probabilmente un errore)
-pear install Spreadsheet_Excel_Writer-beta(idem come sopra)
Come tocco finale riavviate Apache per rendere effettive le modifiche; - Open Office Calc o Microsoft Excel.
Analisi del codice
Generiamo ora un semplice foglio di calcolo inserendo il
codice sottostante in una pagina denominata
test.php (o come preferite voi):
<?php // includiamo la classe PEAR::Spreadsheet_Excel_Writer require_once "Spreadsheet/Excel/Writer.php";
// creiamo un'istanza della classe
$xls =& new Spreadsheet_Excel_Writer();
// spediamo gli header HTTP per informare il browser sulla// tipologia di file che sta per ricevere $xls->send("test.xls"); // aggiungiamo un foglio di calcolo al file, ritornando un oggetto // al quale sia possibile aggiungere dei dati $sheet =& $xls->addWorksheet('Binary Count'); // scriviamo dei numeri tramite un ciclo for ( $i=0;$i<11;$i++ ) { // usiamo la funzione decbin() per convertire i numeri interi// nel formato binario $sheet->write($i,0,decbin($i)); } // chiudiamo il foglio di calcolo e spediamolo al browser $xls->close(); ?>
A questo punto non bisogna far altro che puntare il browser
sulla pagina test.php e il file test.xls verrà
generato e scaricato automaticamente. Tale file
conterrà i numeri da 1 a 10 in binario.
Se volessimo invece memorizzare sul server un foglio di
calcolo, dovremmo utilizzare il seguente codice:
<?php // controlliamo if ( !file_exists('sheets/binary.xls') ) { // includiamo la classe PEAR::Spreadsheet_Excel_Writer require_once "Spreadsheet/Excel/Writer.php"; // creiamo un'istanza della classe $xls =& new Spreadsheet_Excel_Writer('sheets/binary.xls'); // aggiungiamo un foglio di calcolo al file, ritornando un oggetto // al quale sia possibile aggiungere dei dati $sheet =& $xls->addWorksheet('Binary Count'); // scriviamo dei numeri tramite un ciclo for ( $i=0;$i<11;$i++ ) { // usiamo la funzione decbin() per convertire i numeri interi // nel formato binario $sheet->write($i,0,decbin($i)); } // Finish the spreadsheet, dumping it to the browser $xls->close(); } ?>
Nota: se il server web di riferimento è basato su un sistema operativo UNIX-like, ricordatevi di modificare i permessi per la directory nella quale volete memorizzare il foglio di calcolo in modo che PHP abbia i permessi per scriverci.
Conclusioni
Per ulteriori indicazioni, consultare la documentazione online del package Spreadsheet_Excel_Writer.
- Articolo precedente Caricare e salvare documenti e file audio video online su hard disk virtuali (80 servizi) - II Parte
- Articolo successivo Tre regole per lavorare da casa senza andare in ufficio. Da seguire assolutamente!