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

  • Creatore Discussione Creatore Discussione crashall
  • Data di inizio Data di inizio

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
 
Ciao, sicuro che la tabella sia sintatticamente corretta : tutti i tr td sono chiusi ?
 
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>
 

Discussioni simili