usare un foglio php per la creazione di un excel: piccolo problema

crashall

Nuovo Utente
29 Ott 2014
14
0
0
ciao a tutti.
io ho creato una tabella html contenente il risultato di una query mysql e ho creato un excel con la funzionalità
header ("Content-Type: application/vnd.ms-excel");
header ("Content-Disposition: inline; filename=lista_".date('Ymd').".xls");

il problema però è che viene creato un file excel ma in realtà è solo un file di testo con formato XLS in quanto può essere aperto con blocco note e quando lo apro con excel ricevo il seguente messaggio, e se poi clicco su SI mi si apre il file con i dati.
err.jpg

io devo però inviare questo file ad altre persone e vorrei risolvere questo problema... sapete se esiste un modo?

grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, sicuro che la tabella sia sintatticamente corretta : tutti i tr td sono chiusi ?
 

crashall

Nuovo Utente
29 Ott 2014
14
0
0
si sono chiusi..questo è il codice

<body>
<?php
$lista = "SELECT distinct cognome
,nome
,sesso
,desc_comune_nasc
,dt_nascita
,n_Tessera
,dt_ril_tessera
FROM v_persone
WHERE fl_spedito = 'N'";
$filename = "Lista_tesserati_".date('Ymd').".xls";

header ("Content-Type: application/vnd.ms-excel");
header ("Content-Disposition: inline; filename=".$filename);
?>
<table align="center">
<thead>
<tr><th colspan="8"><u><h4>ELENCO TESSERATI TABELLA A</h4></u></th></tr>
<tr>
<th>Cognome</th>
<th>Nome</th>
<th>Sesso M/F</th>
<th>Comune di Nascita</th>
<th>Data di Nascita</th>
<th>Società/Codice</th>
<th>N° di Tessera</th>
<th>Data di rilascio</th>
</thead></tr>
<?php
$q = $db->prepare($lista);
$q->execute();
$q->setFetchMode(PDO::FETCH_ASSOC);
echo "<tbody>";
while($row = $q->fetch()) {
echo "<tr>";
echo "<td>".$row['cognome']."</td>";
echo "<td>".$row['nome']."</td>";
echo "<td>".$row['sesso']."</td>";
echo "<td>".$row['desc_comune_nasc']."</td>";
echo "<td>".$row['dt_nascita']."</td>";
echo "<td>xxx</td>";
echo "<td>".$row['n_tessera']."</td>";
echo "<td>".$row['dt_ril_tessera']."</td>";
echo "</tr>";
}
echo "</tbody>";
?>
</table>
<?php
if (!isset($dtsped) && !isset($anno)) {
$spedito = "update tessere
set fl_spedito = 'S'
where fl_spedito = 'N'";
$q = $db->prepare($spedito);
$q->execute();
}
?>
</body>
</html>