Esportare una pagina web in Word o Excel con PHP
- Gennaio 11, 2010
- by
- Donatantonio
Sempre più spesso sorge la necessità di permettere ad un utente di esportare il contenuto di una pagina web in un formato più gestibile e adeguatamente formattato. Pensiamo ad esempio ad una Web Application che mostra a video tabelle o grafici. L’obiettivo è far si che queste siano accessibili attraverso un documento di Word o di Excel.
Lo script genera “a volo” un documento Word o Excel che può essere successivamente salvato o aperto direttamente dal browser.
Vediamo il seguente esempio (Creo una pagina html che fornisce due link per esportare la tabella visualizzata):
<html> <head><title>Mostro una tabella in html...</title></head> <body> <table border='1'> <tr><th>Valore</th><th>Quantità</th></tr> <tr><td>Valore A</td><td>200</td></tr> <tr><td>Valore B</td><td>150</td></tr> <tr><td>Valore C</td><td>180</td></tr> </table> <br/> <a href='esporta.php?tipo=excel'>Esporta in Excel</a> | <a href='esporta.php?tipo=word'>Esporta in Word</a> </body> </html>
Creo lo script PHP, esporta.php (Da notare il valore del Content-Type all’interno dell’header):
<?php if($_GET['tipo']=='excel'){ $filename = "tabella.xls"; header ("Content-Type: application/vnd.ms-excel"); header ("Content-Disposition: inline; filename=$filename"); }else{ if($_GET['tipo']=='word'){ $filename = "tabella.doc"; header("Content-Type: application/msword"); header ("Content-Disposition: inline; filename=$filename"); }else{ exit; } } ?> <table border='1'> <tr><th>Valore</th><th>Quantità</th></tr> <tr><td>Valore A</td><td>200</td></tr> <tr><td>Valore B</td><td>150</td></tr> <tr><td>Valore C</td><td>180</td></tr> </table>
L’esecuzione della pagina esporta.php si conclude con l’invio da parte del server di un documento .doc o .xls al browser.