Generare file excel da PHP

Sfruttiamo la possibilità di Excel di leggere file HTML per produrre tabelle scaricabili come foglio di lavoro.

Questo script consente di generare dinamicamente documenti Excel senza instanziare oggetti COM lato server. Il tutto è fatto con poche righe di PHP.

Lo script imposta il Mime Type su quello di Excel (application/vnd.ms-excel), sfruttando una caratteristica, presente già in Office 97, che consente a Word ed Excel di leggere senza problemi documenti HTML. Inoltre, impostando l'header Content-Disposition: inline; filename=FILENAME richiede al browser di scaricare il file anziché aprirlo al suo interno. In seguito genera una tabella HTML che verrà interpretata da Excel come un suo foglio di lavoro. Per semplicità generiamo una semplice tabella pitagorica, ma nulla impedisce di prelevare i dati da database o altre fonti.

Il file così generato e scaricato viene aperto correttamente sia da Excel che dallo spreadsheet di OpenOffice.

Ecco il codice:

<?php
   $filename="sheet.xls";
   header ("Content-Type: application/vnd.ms-excel");
   header ("Content-Disposition: inline; filename=$filename");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang=it><head>
<title>Titolo</title></head>
<body>
<table border="1">
<?
for ($i=1;$i < 11; $i++)
{
   echo "<tr>";
   for ($j=1; $j<11;$j++)
   {
      $a = $i * $j;
      echo "<td>$a</td>";
   }
   echo "</tr>";
}
?>
</table>
</body></html>

Privacy Policy