Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    24

    Esportazione mysql in excel tramite php: excel scaricato ma vuoto

    Buongiorno a tutti ,
    stavo provando a esportare un xld creato da un tabella mysql, tramite php .
    Il problema è che benché mi faccia vedere la tabella correttamente ( quando tolgo lo script di esportazione), quando esporto continua a crearmi un excel vuoto e non so dove sbattere la testa.
    codice:
    <?php $nomefile="Newsletter.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$nomefile");
    ?>
    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
    
    
    <?php
    require "moduli/configtest.php";
    require "moduli/connecttest.php";
    
    
    $query= 'SELECT * FROM Newsletter ';
    $result=mysql_query($query);
    if ($query==FALSE) die("errore nella composizione della query");
    mysql_close($link);
    
    
    while($row=mysql_fetch_array($result)) {
    //definisco le variabili necessarie visualizzo solo il nome del trattamento e il tipo il nome trattamento è linkabile
    
    
    
    
    $Nome=$row['Nome'];
    $Email=$row['email'];
    echo'<table><tr>';
    echo'<td>'.$Nome.'</td>';
    echo'<td>'.$Email.'</td></tr></table>';
    echo'</br>';
    }
    ?>
    </body>
    </html>
    Grazie
    Ultima modifica di mmp94; 29-05-2014 a 14:27

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    24
    codice:
    <?php$nomefile="Newsletter.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header("Content-Disposition:inline; filename=$nomefile");
    ?>
    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=it>
    <head></head>
    <body>
    <table border="1">
    <tr>
    <td>Nome</td>
    <td>Email</td>
    </tr>
    
    
    <?php
    
    
    require "moduli/configtest.php";
    require "moduli/connecttest.php";
    
    
    $query= 'SELECT * FROM Newsletter ';
    $result=mysql_query($query);
    if ($query==FALSE) die("errore nella composizione della query");
    mysql_close($link);
    while($row=mysql_fetch_array($result)) 
    {
    $Nome=$row['Nome'];
    $Email=$row['email'];
    echo'<tr>';
    echo'<td>'.$Nome.'</td>';
    echo'<td>'.$Email.'</td>';
    echo'</tr>';
    }
    ?>
    </table>
    </body>
    </html>
    Ho modificato un po il codice:
    se tolgo lo script di esportazione , mi cicla tranquillamente la tabella
    se lascio lo script d esportazione in excel, scrive solamente le intestazioni colonna che sono fuori dai tag php. non riesco a capire che passaggio manchi per dargli l input a scrivere

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    24
    l avrò riscritto 50 volte, continua a scaricarmi un excel vuoto

  4. #4
    Scusa, ma DOVE sarebbe lo script di esportazione?

    Tieni presente che il formato XLS NON HA NIENTE A CHE FARE CON L'HTML, quindi NON basta mettere gli header che indicano il mime type di excel perchè il file diventi un file excel...

    Per poter esportare in XLS devi usare delle librerie specializzate, la più famosa è PhpExcel.

    Anche se tu volessi esportare in formato XLSX, si tratta comunque di un formato che è basato su una doctype specifica di XML (e quindi NON su HTML) , anche in questo caso ti può venire in aiuto PhpExcel.

    In ogni caso, un file HTML NON è un file XLS , nemmeno se mandi gli headers del tipo mime di excel.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.