esportare dati in excel

Ciao a tutti ho la necessità di esportare dei dati estratti dal db mysql in excel

uso:

< ?php
$nomefile=file.xls";
header ("Content-Type: application/vnd.ms-excel");
header ("Content-Disposition: inline; filename=$nomefile");
?>

poi mi richiamo i dati tramite query  e li inserisco in delle celle;

fin qui nessun problema solo che se apro il file

i dati estratti vengono convertiti..mi spiego meglio:

nel db ho tre campi:

codice (VARCHAR 250)

nome(VARCHAR 250)

prezzo(DECIMAL 9,2)

apro il mio file.xls e, tutto sballato:

il codice se inizia per "0" questo viene ignorato, passando al primo numero intero;

il prezzo "sballatissimo" mi escono dei decimali strani , poi controllando il tipo di cella scopro che è stato conevertito in "Personalizzato h,m" insomma in orario :tichedoff:

che posso fare?

grazie mille.

P.S questo accade con microsoft excel, con open office li vedo correttamente anche se devo salvare il file senza estensione xls (ovvero come documento di testo semplice) altrimenti anche lui mi ignora gli "0" davanti ai numeri primi. :tichedoff:

inviato 9 anni fa
yusizu
X 0 X

Prova ad usare il package PEAR::Spreadsheet_Excel_Writer

http://pear.php.net/package/Spreadsheet_Excel_Writer

qui un tutorial:

http://www.sitepoint.com/article/pear-spreadsheet_excel_writer

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie x la dritta Gianni, dopo un pò di confusione nei percorsi dei file sono riuscito a generare un file.xls

ora, saresti così gentile da farmi un esempio di inserimento dati con intestazione?

diciamo che ho i miei 3 famosi campi:

Codice  >>001

Nome  >>test

Prezzo>> 12.80

senza query al db, poi li vedo se ci riesco, mi posteresti il codice per inserirli?

ti posto il codice della guida:

<?php 
// Include PEAR::Spreadsheet_Excel_Writer 
require_once "Writer.php"; 

// Create an instance 
$xls =& new Spreadsheet_Excel_Writer(); 

// Send HTTP headers to tell the browser what's coming 
$xls->send("test.xls"); 

// Add a worksheet to the file, returning an object to add data to 
$sheet =& $xls->addWorksheet('Binary Count'); 

// Write some numbers 
for ( $i=0;$i<11;$i++ ) { 
 // Use PHP's decbin() function to convert integer to binary 
 $sheet->write($i,0,decbin($i)); 
} 

// Finish the spreadsheet, dumping it to the browser 
$xls->close(); 
?>

grazie mille :(

risposto 9 anni fa
yusizu
X 0 X

Cosa vuoi sapere di preciso? Non ho esempi sotto mano...

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ho provato banalmente a fare una roba del genere:

$sheet->write(0,0,'Codice'); 
 $sheet->write(0,1,'Nome'); 
 $sheet->write(0,2,'Prezzo'); 

$prova ='0001';
$sheet->write(1,0,$prova);

..ma 0001 mi diventa 1 :tichedoff: (anche se come formato cella non è numerico ma generale!)

e poi non saprei come inserire più dati nelle rispettive celle  :tichedoff:

risposto 9 anni fa
yusizu
X 0 X

se non ti scoccia e....tempo permettendo dovrei fare una "banale" query al db estarre i dati con un while o un for, vedi tu ed inserirli nelle rispettive celle, magari l'intestazione possiamo crearla prima come nell'esempio di sopra

grazie Gianni

risposto 9 anni fa
yusizu
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda