Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Export da php a excel

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180

    Export da php a excel

    Ciao a tutti,
    il mio problema è il salvataggio in Excel del risultato di una query fatta su un db.

    Al momento ho una pagina ricerca.php che esegue la connessione al db, fa una query sul db e memorizza il risultato di tale query in una variabile chiamata $result.
    Poi popola le righe di una tabella a video con il ciclo:
    while ($row = mysql_fetch_assoc($result)) {
    ....
    ...

    Quello che vorrei fare è inserire un link "esporta" che salvasse/esportasse tale risultato in excel.

    Da post precedenti ho trovato questo codice:
    fare un link con codice ricerca.php?xls=1

    aggiungere alla pagina:

    if(isset($_GET['xls']) AND $_GET['xls']==1){
    $nomefile="nomefile.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$nomefile");
    }

    MA:
    - non capisco come passare la variabile che contiene il risultato della query
    - non so in quale parte del codice inserirlo

    Grazie a tutti in anticipo

  2. #2
    OUTSHINE '84

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    ...hmmmm....non proprio.....
    nel senso che io ho già la pagina che genera la tabella con il ciclo while.

    Alla fine di questa vorrei inserire un link "esporta" che, se cliccato, facesse salvare i dati della tabella generata a video, in Excel.
    Il risultato della query è contenuto nella variabile $result; ecco la struttura a grandi linee:

    $query = "SELECT *.....
    ...
    $result = mysql_query($query);
    ...
    echo '
    <table ...
    ...
    while ($row = mysql_fetch_assoc($result)) {
    ...


    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    ....nessun suggerimento?
    Grazie

  5. #5
    Io farei così:

    metterei nella mia pagina base :
    Esporta
    questo link per l'esportazione.

    Quindi farei una pagina php (fantasma) che crea un file .csv temporaneo coi dati della querystring e Redireziona il client su quello.

    Non è ottimizzato perchè fai la query due volte , lo so ...

    se no puoi salvare il file .csv a priori nella prima pagina
    magari generando un id univoco come nome del file
    e mettere direttamente il link a quel file.

    un file csv è più smeplice da scrivere di un file .xls ma viene cmq interpreato correttamente da tutti gli excel e aperto con excel.

    $var=fopen("export.csv","w+");

    $stringa_scrivere= "Titolo Colonna1; Titolo Colonna2; Titolo Colonna3;\n";

    while ($row=mysql_fetch_array($query))
    {
    ....
    $stringa_scrivere = $row['colonna1'].";". $row['colonna2'].";". $row['colonna3'].";\n"
    ?>
    ...

    fwrite($var, $stringa_scrivere);
    fclose($var);


    il link diretto diventa:

    Esporta
    OUTSHINE '84

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    io ho fatto così:
    faccio la query poi
    Codice PHP:
    <?php
    $nomefile 
    "nomefileproposto.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$nomefile");
    ?>
    poi la tabella..
    Codice PHP:
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td>campo 1</td>
        <td>campo 2</td>
        <td>campo 3</td>
        <td>campo 4</td>
      </tr>
    //qua il ciclo dei tuoi dati
    <?php do { ?>
    <tr>
        <td><?php echo $var1?></td>
        <td><?php echo $var2?></td>
        <td><?php echo $var3?></td>
        <td><?php echo $var4?></td>
    </tr>
    // qua chiudi il ciclo

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.