Exporter un tableau php html en format excel.

Messages postés
3
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
21 août 2009
- - Dernière réponse : Tonio_35
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
- 21 août 2009 à 16:11
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.
Afficher la suite 

4 réponses

Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
0
Merci
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...
Commenter la réponse de nautilus99
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
0
Merci
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.
Commenter la réponse de nautilus99
Messages postés
3
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
21 août 2009
0
Merci
OK je m'y mets.
Merci nautilus99.
Commenter la réponse de chamane1388
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
0
Merci
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
Commenter la réponse de Tonio_35