Esportare una tabella in un file di excell

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
Tato
membro Baby
membro Baby
Messaggi: 86
Iscritto il: 28/03/2003, 1:00
Località: Italia

Esportare una tabella in un file di excell

Messaggio da Tato »

Ciao a tutti,

chiedo un aiuto per esportare una tabella in un file di
excell, ho realizzato lo script in PHP, lo eseguo ma invece di aprirsi la
finestra che mi chiede "Salva con il nome ..." mi viene l'output a video,
qui di seguito le due righe dello script che "dovrebbero" reindirizzare
l'output

qualcuno è in grado di aiutarmi ?!?!

grazie

header("Content-type: application/vnd.ms-excel; name=$excelFname");

header("Content-Disposition: inline; filename=$excelFname.xls");

p.s.
meglio ancora se qualcuno ha uno script che esporti un file con i prodotti più venduti per ogni singola categoria

thanks
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Re: Esportare una tabella in un file di excell

Messaggio da BluEdoG »

Excel con una L :-)
cmq qui sotto dopo vnd.ms-excel non capisco cosa c'entra name=...
mettilo separato, prima dell'header (tra l'altro dovrebbe essere diverso del tipo $excelFname = "nomechevogliosiadiexcel" ; )

Tato ha scritto: header("Content-type: application/vnd.ms-excel; name=$excelFname");

header("Content-Disposition: inline; filename=$excelFname.xls");
Poi la riga successiva è errata
header("Content-Disposition: attachment; filename=$excelFname");

poi aggiungi sotto
header("Pragma: no-cache");
header("Expires: 0");
saluti, Caneblu
[ www.caneblu.com ]
Tato
membro Baby
membro Baby
Messaggi: 86
Iscritto il: 28/03/2003, 1:00
Località: Italia

Messaggio da Tato »

ok grazie, ho fatto le modifiche che mi hai detto, adesso effettivamente mi si apre la finestra per il download però cerca di scaricarmi lo script php e non il contenuto della tabella :-(
, puoi vedere se trovi l'errore ?


ti allego lo script:

$db="xxxxxxx";
$tbl="yyyyyyy";
$excelFname="best_sellers.xls";

mysql_connect("localhost", "kkkkkkkk", "hhhhhhh")
or die (mysql_error());
mysql_select_db($db)
or die (mysql_error());

$rs=mysql_query("SELECT * FROM $tbl")
or die (mysql_error());
$fields=mysql_num_fields($rs);

// manda il header
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$excelFname.xls");
header("Pragma: no-cache");
header("Expires: 0");

for ($i=0; $i < $fields; $i++) {
if (mysql_field_name($rs,$i) != "ID")
// in una tabella excel il primo entry non puo' essere 'ID'
echo "". mysql_field_name($rs,$i) ."\t";
else
echo "Index\t";
}
echo "\n";
while ($row = mysql_fetch_row($rs)) {
$fl=mysql_num_fields($rs);
for ($i=0; $i<$fl; $i++)
echo "$row[$i]\t";
echo "\n";
}
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Messaggio da BluEdoG »

Mi sembra che manchi parecchia roba, non vedo un collegamento logico tra la select e l'aggancio per scaricare i dati.
saluti, Caneblu
[ www.caneblu.com ]
Tato
membro Baby
membro Baby
Messaggi: 86
Iscritto il: 28/03/2003, 1:00
Località: Italia

Messaggio da Tato »

mhh, il mio probema è che me ne intendo poco di php, questo script l'ho recuperato da un sito e pensavo che funzionasse con pochi adattamenti, tu hai idea di come fare per farlo funzionare ?

grazie
Tato
membro Baby
membro Baby
Messaggi: 86
Iscritto il: 28/03/2003, 1:00
Località: Italia

Messaggio da Tato »

ok, ho smanettato più che potevo ed ho riscritto lo script, adesso in parte funziona, nel senso che l'output viene visualizzato a video ma non si apre la finestra che mi chiede di salvare il file, any idea ?

ecco lo script:

------------------------------------------------------------------------------

require('includes/application_top.php');


$numero_records = 100;

$best_sellers_query = tep_db_query("select p.products_id, pd.products_name, p.products_ordered from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' order by p.products_ordered DESC, pd.products_name limit " . $numero_records);


$filename="best_sellers.xls";
header ("Content-type: application/vnd.ms-excel");
header ("Content-Dsiposition: attachment; filename=$filename");


$fields=mysql_num_fields($best_sellers_query);

for ($i=0; $i < $fields; $i++)
{
if (mysql_field_name($best_sellers_query,$i) != "ID")
// in una tabella excel il primo entry non puo' essere 'ID'
echo "". mysql_field_name($best_sellers_query,$i) ."\t";
else
echo "Index\t";
}

echo "\n";
while ($row = mysql_fetch_row($best_sellers_query))
{
$fl=mysql_num_fields($best_sellers_query);
for ($i=0; $i<$fl; $i++)
{
echo "$row[$i]\t";
echo "\n";
}
}

-----------------------------------------------------------------------
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Messaggio da BluEdoG »

aggiungi sotto header( etc :

header("Pragma: no-cache");
header("Expires: 0");
saluti, Caneblu
[ www.caneblu.com ]
Rispondi