La classe Excel Writer est assé lourde mais bien pratique en effet... Si tu n'as pas de mise en forme spécial, je te conseille plutôt d'utiliser le format CSV ! Tu as juste a générer tes éléments comme suit :
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=base.csv");
echo '"Ma colonne 1";"Ma colonne 2"';"Ma colonne 3"'
echo "\r\n";
// La c a adapter...
while ($ligne = $db->fetch_assoc($result))
{
echo '"'.$ligne['col1'].'";'
.'"'.$ligne['col2'].'";'
.'"'.$ligne['col3'].'"';
echo "\r\n";
}
Note 1 : Normalement ce format prends des virgules comme séparateurs mais pour excel ce seras des ;.
Note 2 : Si tes éléments contiennent des " il faudra les échapper avec un autre "...
str_replace('"', '""', $ligne['col1'])
Note 3 (A vérifier) : Si ta valeur de cellule commence par un caractère spécial excel, il faudra l'échapper avec un '.
function escape_carac_speciaux_excel($chaine)
{
$chaine = DDSParsing::htmlspecialchars_sdecode(DDSParsing::carac_speciaux_mail($chaine));
if($chaine[0]=="@" or $chaine[0]=="+" or $chaine[0]=="=")
{
$chaine=' '.$chaine;
}
return $chaine;
}
Voilà !!! Bon Week-end !
Tonio