Christian Castelli
a- a+

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 configurazione php.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 -beta riceverete 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.

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!