Esportare una pagina web in Word o Excel con PHP
realizzato da Donatantonio, il 11 gen. 2010, categoria PHP |
|
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.
Leggi gli articoli correlati:
Invia ad un amico (Send this to a friend)
Stampa questo articolo (Print now)
:da php a Excel, da php a Word, esportare da php
Ti è piaciuto quest'articolo, guida o riflessione? Scoprine tanti altri nel menu articoli.








invio in corso...