Exporter un tableau php html en format excel.

Signaler
Messages postés
3
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
21 août 2009
-
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
-
Bonjour.
Orientez moi si ce n'est po la ou il faut poster cette question.
Je veux exporter un tableau php html en format excel et ce par un bouton ou lien c'est à dire sans logiciel ou truc intermédiaire.
est ce possible??
merci.

4 réponses

Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Bonjour,

La classe Excel Writer devrait te convenir. A toi de donner à la classe les données à convertir. et surtout, avant d edire "ça marche pas" lis bien TOUTE la page et les liens vers les tutoriels et discussions en forum phpclasses.

Cett eclasse permety d'exporter un (ou plusieurs) arrays PHP (ou result set de requête SGBD) dans un tableau au format Excel 97 natif (donc pas en csv, le tout sans utiliser COM, donc portable aussi bien avec un PHP su run serveur Unix, Linux, BSD, MacOS...
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Complément:

Le format Excel a changé d emultiples fois, de derneir en date est un format de type OpenDocument. Les développeurs de Write Excel ne pouvant mettre à jour à chaque fois que Microsoft modifie ses formats internes ont figé au format Excel 97, que même la dernière version de MS Office doit savoir ouvrir.

Pour être plus universel, il conviendrait plutôt d'exporter au format OpenDoc, qui lui est bien plus souple et sutout est un format ouvert, dont les sépcifications sont très claires et précises.
Messages postés
3
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
21 août 2009

OK je m'y mets.
Merci nautilus99.
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
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