Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    esportare una tabella php in excel

    ciao a tutti,
    sto analizzando dei dati di un database mysql tramite uno scripot php e le visualizzo mediante una tabella in html.
    vorrei sapere se è possibile creare un tasto o un collegamento che mi permetta di esportare in excel la tabella.

    ho provato con [CODE]<?php
    header('Content-type: application/vnd.ms-excel');
    ?>
    ma mi fa solo salvare in excel la tabella senza farmela visualizzare come posso fare???


    grazie a tutti.

  2. #2
    premetto che non sò come si potrebbe fare ma mi vengono un paio di dubbi su possibili problematiche:
    penso che dipenda dalle impostazioni del browser e dal sistema operativo! se non è istallato excell? o se non si hanno i permessi per lanciare applicazioni, come fai?
    /*no comment*/

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    con questi headers lo forzi a salvare un excel con il nome REPORT.xls
    Codice PHP:
    $nomefile "REPORT.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$nomefile"); 
    ovviamente prima di questo codice NON DEVE ESSERCI NIENTE DI OUTPUT.. NEMMENO UNO SPAZIO..
    poi ci metti
    <html xmlns="urn:schemas-microsoft-comfficeffice" xmlns:x="urn:schemas-microsoft-comffice:excel" xmlns="http://www.w3.org/TR/REC-html40">

    e poi la tua pagina HTML/php.. anche con tabelle.. anzi forse meglio con tabelle..
    ho notato che office 2007 su windows 7 riconosce che questo NON è un xls "nativo" e chiede se vuoi aprire con excel o con un altro software..

  4. #4
    grazie telegio

    non capisco però cosa non funziona io le istruzioni li devo mettere dopo la query giusto?
    ovvero prima di scrivere
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {


    perche mi da errore e non capisco dove sbaglio

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    che errore?
    tipo: Warning: Cannot modify header information - headers already sent
    vuol dire che mandi un output prima di
    $nomefile = "REPORT.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$nomefile");

    anche solo uno spazio e ti da errore.. ha ragione lui..

    se non è quello.. che errore è?

  6. #6
    no mi da questo errore

    Parse error: parse error in C:\wamp\www\report_ciliegi_A.php on line 73

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    è un errore di sintassi.. non un errore dell'excel..
    magari hai dimenticato una }
    che c'è alla riga 73 di quel file?!

  8. #8
    scusate se mi intrometto sto anch'io faticando con questo problema io ho fatto questo ho il problema che mi chiede se salvare o aprire come deve fare ma il file è vuoto addirittura in certi casi mi porta dentro tutto quello che trova nella pagina principale quella che ha il link a questa:


    $filename="product-nopics.xls"; // nome del file che creeremo

    $products_nopics = "select p.products_id, p.products_model, pd.products_name, p.products_image from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
    where p.products_id = pd.products_id and pd.language_id='" . $_SESSION['languages_id'] . "' and p.products_model like'". $filtro ."' order by p.products_model";
    $nopics=$db->Execute($products_nopics) or die (mysql_error());

    ?>

    <html>
    <head>
    <title>Export</title>
    </head>
    <body>
    <table border="1">
    <tr>
    <th>ID#</th>
    <th>Codice</th>
    <th>Descrizione</th>
    </tr>
    <?php


    header ("Content-Type: application/vnd.ms-excel"); // specifichiamo il Content-Type
    header ("Content-Disposition: inline; filename=$filename"); // specifichiamo la risorsa

    $conn = mysql_connect('localhost','user','password') or die ('Connessione al Database fallita!!!!!');
    mysql_select_db('catalogo',$conn) or die ('Il Database selezionato non esiste !!!');
    $sql="SELECT * FROM cat_products";
    $query=@mysql_query($sql) or die (mysql_error());
    while ($row=mysql_fetch_array($query)) {


    $id=$nopics->fields['products_id'];
    $model=$nopics->fields['products_model'];
    $name=$nopics->fields['products_name'];
    ?>
    <tr>
    <td><?php echo $id; '\t'?></td>
    <td><?php echo $model;'\t'?></td>
    <td><?php echo $name; '\n'?></td>
    </tr>
    <?php
    }
    ?>
    </table>
    </body>
    </html>

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    @sluci:
    hai letto quello che ho scritto sopra?
    questa parte qua
    header ("Content-Type: application/vnd.ms-excel"); // specifichiamo il Content-Type
    header ("Content-Disposition: inline; filename=$filename"); // specifichiamo la risorsa
    va ad inizio pagina prima pure di ogni cosa, anche di un singolo spazio..
    in ambiente di test non mettere
    $query=@mysql_query
    togli la @
    senza la questione di excel, la pagina è con dei dati?

  10. #10
    Questo è l'ultimo tentativo ma miseramente fallito excel dati 0 inoltre nell'apertura mi da un errore.
    E pensare che c'è stato un punto dove mi tirava dentro tutto lo schermo della pagina principale.
    Mi sa che devo rinuciare.

    *****questo è il richiamo dalla pagina principale a quella di trasformazione in excel

    <form action= ""; method="post" class="pageHeading">
    <button type="submit" name="crea_file"> Crea File </button>
    <?php if (isset($_POST['crea_file'])) {require_once (DIR_WS_INCLUDES . 'php-creazione_file_excel.php');}?>
    </form>

    ***** questa è la pagina creazione file excel semplificata al massimo

    <?php
    $filename="product-nopics.xls";
    header ("Content-Type: application/vnd.ms-excel");
    header ("Content-Disposition: inline; filename=$filename");
    $conn = mysql_connect('localhost','user','password') or die ('Connessione al Database fallita!!!!!');
    mysql_select_db('catalogo',$conn) or die ('Il Database selezionato non esiste !!!');
    $sql="select * from " . TABLE_PRODUCTS;
    ?>
    <html xmlns="urn:schemas-microsoft-comfficeffice" xmlns:x="urn:schemas-microsoft-comffice:excel" xmlns="http://www.w3.org/TR/REC-html40">
    <head><title>Export</title></head>
    <body>
    <table border="1">
    <tr>
    <th>ID#</th>
    <th>Codice</th>
    <th>Descrizione</th>
    </tr>
    <?php
    $result=mysql_query($sql) or die (mysql_error());
    $test=mysql_num_rows($result); // trovate 2449 righe
    while ($row=mysql_fetch_array($result)) {
    $id=$row['products_id'];
    $model=$row['products_model'];
    ?>
    <tr>
    <td><?php echo $id;?></td>
    <td><?php echo $model;?>
    \n</td>
    </tr>
    <?php
    }
    ?>
    </table>
    </body>
    </html>

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.