| PHP-MySQL - Creare un file MS Excel |
|
|
|
| Script utili - PHP - MySql |
| Scritto da Samyorn |
|
Creare un file MS-Excel dal Web tutto sommato, provando e riprovando i vari script trovati in giro, alla fine non è una cosa così difficile….anzi!!!!! Vi riporto la mia esperienza personale e quello che per me è il modo più semplice di prelevare dei dati da un Db MySQL e creare un foglio excel che li contenga.
Immaginiamo di avere una tabella utenti che contenga il nome, cognome e indirizzo e-mail degli stessi e che ci serva estrarre questi dati in un foglio excel. Per prima cosa dobbiamo creare uno script che invece di generare un normale output, ci faccia scaricare il file creato. E questo è possibile utilizzando gli header, specificando prima il Content type e poi che la risorsa sarà una inline. Come vedrete il tutto si risolverà nella creazione di una tabella (che vi aspettavate? <?php
include "config.php"; // includo il file di connessione al Db
$filename="export.xls"; // nome del file che creeremo
header ("Content-Type: application/vnd.ms-excel"); // specifichiamo il Content-Type
header ("Content-Disposition: inline; filename=$filename"); // specifichiamo la risorsa
?>
<!–- iniziamo a costruire la nostra tabella -->
<html><head><title>Export</title></head><body>
<table border="1″>
<tr>
<th>Nome</th>
<th>Cognome</th>
<th>E-mail</th>
</tr>
<?
$sql="SELECT * FROM utenti ORDER BY nome"; // selezioniamo i dati dalla nostra tabella
$query=@mysql_query($sql) or die (mysql_error());
while ($row=mysql_fetch_array($query)) // ed effettuiamo un ciclo per creare le righe della nostra tabella
{
$nome=$row['nome'];
$cognome=$row['cognome'];
$mail=$row['email'];
?>
<tr>
<td><? echo $nome; ?></td>
<td><? echo $cognome; ?></td>
<td><? echo $mail; ?></td>
</tr>
<?
}
?>
</table>
</body>
</html>
<?
@mysql_close($connessione);
?>
Che ci crediate o meno è fatta Scaricatevi lo script da quì Eseguendo lo script il Vs. browser vi chiederà di aprire o scaricare il file export.xls, mi raccomando, scaricatelo in locale per poterlo sfruttare al meglio, senno’ avrete una visualizzazione html del file excel appena creato Come ultima chicca vi aggiungo che potete formattare i vari campi e valori visualizzati per come più vi piace Potreste associare anche un CSS, volendo, per gestire bordi, colori e quant’altro, e per formattare i campi utilizzare la funzione di formattazione di PHP più adatta alle vostre esigenze |




Le possibilità sarebbero due (per quanto mi viene in mente al momento), una indolore e l'altra un po' più complessa:
L'indolore: mettere le immagini online su qualche sito o image hosting e linkarle esattamente come fai per una cartella condivisa. Chi visualizzerà il file dovrà ovviamente essere connesso ad internet, attenderà pochi secondi a file aperto (il tempo che vengono scaricate, immagino siano file di pochi kb).
Creare un pacchetto zippato che contenga il file .xls ed una cartella che contenga le immagini. Dal file ovviamente, a questo punto, basterà linkare l'immagine con cartella/immagine.ext
Il secondo metodo ovviamente richiede una revisione totale dello script e che siano caricate le librerie come gzip (per portare un esempio) così da poter creare online il pacchetto zippato.
Prendi tutto questo come linea teorica , non mi è mai capitato ad esser sincero, pertanto, salvo che mi sfugga qualcosa di più indolore, in teoria le soluzioni possibili son queste.
grazie
Potresti provare a creare due table e vedere se le accoda o "magari" le riconosce come entità diverse e quindi creerà due fogli. ;)
grazie
ciao
Disegno,0,3); if ($R $wsR) { $R=$wsR; if ($riga>1) echo " ";?>Codeandinfo1info2info3aabbccddeeffgghhiiDisegno; ?> a1; ?>a2; ?>a3; ?>a4; ?>a5; ?>
;)
grazie
a più tardi
Chiedo questo perchè ho necessità che nella stampa la pagina deve essere stampata in orizzontale automaticamente, senza mettere le mani alle impostazioni di stampa.
Grazie
da un errore di excell all'apertura e il file è vuoto .