Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446

    esportare da php tabella del database

    Ho realizzato una semplice pagina che consente di esportare i dati di una tabella del mio db mysql in un file excel. Ora vorrei dare un minimo di stile alla pagina excel, in particolare:

    - grassettare i nomi dei campi del db
    - stabilire una minima larghezza delle colonne

    mi basterebbero già ste due cavolatine...

  2. #2
    Dipende da che cosa utilizzi per effettuare l'esportazione.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    ti posto il codice della pagina:

    codice:
    mysql_select_db($database_conn, $conn);
    $query_rec_clienti = "SELECT * from tb_libri ORDER BY titolo ASC";
    $result = mysql_query($query_rec_clienti, $conn) or die(mysql_error());
    $totalRows_rec = mysql_num_rows($result);
    
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: nomefile.xls; filename=prova.xls");
    
    
    
    $campi = "";
    for ($i = 0; $i < mysql_num_fields($result); $i++)
    {
    	$campi .= mysql_field_name($result,$i)."\t";
    }
    print(trim($campi));
    	print "\n";
    	print "\n";
    while($row = mysql_fetch_row($result))
    {
    	$schema_insert = "";
    	for($j=0; $j<mysql_num_fields($result);$j++)
    	{
    		
    		$schema_insert .= $row[$j].$sep;
    		
    	}
    	
    	$schema_insert = str_replace($sep."$", "", $schema_insert);
    	$schema_insert = preg_replace("/rn|nr|n|r/", " ", $schema_insert);
    	$schema_insert .= "t";
    	print(trim($schema_insert));
    	print "\n";
    }

  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    Ciao,
    ti posso indicare quella che secondo me è la strada migliore:
    1°) creati un campione di come vorresti il file in excel e lo salvi in xml
    2°) analizzati l'xml generato da excel
    ti salvi tutto l'header fino a: " <Table ....." in un file che chiami head_template.inc
    poi ti salvi tutto il contenuto dopo la chiusura della stessa table in file che chiami
    foot_template.inc

    per la parte relativa ai "record" dovresti trovarti qualcosa di simile:
    <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="4" x:FullColumns="1"
    x:FullRows="1">
    <Column ss:AutoFitWidth="0" ss:Width="78.75"/>
    <Column ss:AutoFitWidth="0" ss:Width="96"/>
    <Row ss:AutoFitHeight="0" ss:Height="23.25" ss:StyleID="s21">
    <Cell ss:StyleID="s22"><Data ss:Type="String">colonna 1</Data></Cell>
    <Cell ss:StyleID="s22"><Data ss:Type="String">colonna 2</Data></Cell>
    </Row>

    <Row>
    <Cell><Data ss:Type="String">c1 dato1</Data></Cell>
    <Cell><Data ss:Type="String">c2 dato1</Data></Cell>
    </Row>
    <Row>
    <Cell><Data ss:Type="String">c1 dato2</Data></Cell>
    <Cell><Data ss:Type="String">c2 dato2</Data></Cell>
    </Row>
    <Row>
    <Cell><Data ss:Type="String">c1 dato3</Data></Cell>
    <Cell><Data ss:Type="String">c2 dato3</Data></Cell>
    </Row>

    </Table>

    3) i dati in rosso sono le intestazioni dei campi
    i dati in verde li andrai a sostituire con il tuo recordset


    Con questo metodo puoi portarti dietro anche eventuali filtri di excel e tutte le formattzioni che vuoi. L'unica attenzione è da porre alla codifica dei caratteri.

    A questo punto generi l'output includendo l'head, il recordset e il foot
    e salvi tutto come tuofile.xls
    ...altri 5 anni di purga...

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.