Calak
Messages postés38Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention24 janvier 2010
-
26 oct. 2007 à 16:48
yokithis
Messages postés4Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention13 avril 2009
-
13 avril 2009 à 14:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
yokithis
Messages postés4Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention13 avril 2009 13 avril 2009 à 14:13
merci
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 29 oct. 2007 à 14:53
de l'XML, oui, pas de XSL...
au pire, Excel sais le charger, a voir a partir de quelle version....
y'a des années, j'avais fait en php un truc pour écrire de l'excel, aussi, en SYLK, ça c'était galère ^^ mais ca passait sur tous les Excel :p
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 29 oct. 2007 à 14:33
Salut,
J'ai du louper quelque chose, mais ca ne ressemble pas vraiment a du .xls...
Peut-etre qu'Excel est capable d'ouvrir ca et de le convertir, mais ca ressemble beaucoup a du html :o)
Accessoirement, plutot que lister les champs de tes tables en dur, tu devrais utiliser les API de description genre mysql_fetch_field()ou bien au pire essayer un truc genre :
foreach($EnregN1 as $value)
...qui diviserait la taille de ton code par environ 10 (le nombre de colonnes de ta table).
De plus, ton code qui ecrit dans le fichier est un peu brouillon (Utiliser des variables $name et $Name va sans doute t'ammener a faire des erreurs un jour ou l'autre, $ptr est inutilise...).
Une derniere remarque: Ton code est trop lie a ta base de donnees.
Si vraiment le but est de faire des fichiers Excel, tu aurais pu creer une classe ExcelFile avec des methodes genre AddLine() ou Flush().
Ce serait beaucoup plus simple a reutiliser.
Tu aussi pourrais simplement ecrire dans la sortie standard (avec print ou echo). Avec les bonnes directives header(), le navigateur interpreterait ton script comme du Xls et passerait tout seul le controle a Excel sur le poste client (ou proposerait de l'enregistrer selon sa config).
Un autre avantage d'ecrire directement: Si ta table contient 50000000 de records, le serveur ne te jetera pas avec un "out of memory".
Sinon je confirme qu'utiliser du CSV ici aurait pratiquement fait la meme chose (sauf peut-etre si tu fusionnes des cellules dans ta table HTML et que Excel est capable de garder ce formatage, ou si tu changes les couleurs).
Ah oui, si tu pouvais faire quelque chose pour l'indentation de ton source... Ce n'est pas grand chose, mais ca augmente beaucoup la facilite de comprehension :o)
A+,
Eric
NB: Par contre, pour le niveau Expert... je crois qu'il faudrait revoir ca un peu a la baisse :o)
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 28 oct. 2007 à 20:58
Salut,
Ne te braque pas à la moindre remarque que l'on fait à ton code, surtout lorsque les commentaires sont constructifs et argumentés.
Nous voulions juste t'expliquer que ton code ne tire en aucun cas profit du format XLS. Il aurait fallu utiliser un format d'échange plus neutre comme le CSV qui est vierge de mise en forme, plus léger et qui assure une meilleure comptabilité entre les logiciels de tableurs. En effet, le XLS est un format propriétaire de Windows. Bien qu'il soit lu par la majorité des logiciels de bureautique, rien ne t'assure qu'il sera supporté par un nouveau logiciel. Avec le CSV c'est plus sûr du fait de sa simplicité.
++
soul2006
Messages postés5Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention29 août 2008 28 oct. 2007 à 19:31
Primo c'est pas un fichier csv c'est un fichier xls et je pense que mon code est trés clair moi chui pas spécialiste mais j'avais juste l'idée d'aider les gens
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 27 oct. 2007 à 20:38
Plutôt que de générer un tableau html, génère un fichier CSV. Pourquoi ?
1/ Parceque c'est plus propre.
2/ Pour assurer la portabilité sur différents supports ou logiciels. Le format CSV est vierge de tout formatage de données. Chaque information est uniquement séparée un caractère (le plus souvent, un point virgule). Ton tableau html quant à lui impose une présentation ce qui n'est pas forcément pratique...
++
Calak
Messages postés38Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention24 janvier 2010 26 oct. 2007 à 16:48
Si j'ai bien compris ta source (parce que bon, même si ton code n'est pas compliqué, il n'est pas super clair non plus...) tu génère tout le contenu d'une page directement, en remplaçant les informations qui pourraient varier ?
En gros, tu ne tire pas profit de ce que xsl pourrait t'apporter.
Ici, pour toi, tu devrais générer un fichier xls tout parreil, mais ne mettre que les entêtes du tableau. Le reste se modifiera avec une règle de transformation xsl...
13 avril 2009 à 14:13
29 oct. 2007 à 14:53
au pire, Excel sais le charger, a voir a partir de quelle version....
y'a des années, j'avais fait en php un truc pour écrire de l'excel, aussi, en SYLK, ça c'était galère ^^ mais ca passait sur tous les Excel :p
29 oct. 2007 à 14:33
J'ai du louper quelque chose, mais ca ne ressemble pas vraiment a du .xls...
Peut-etre qu'Excel est capable d'ouvrir ca et de le convertir, mais ca ressemble beaucoup a du html :o)
Accessoirement, plutot que lister les champs de tes tables en dur, tu devrais utiliser les API de description genre mysql_fetch_field()ou bien au pire essayer un truc genre :
foreach($EnregN1 as $value)
...qui diviserait la taille de ton code par environ 10 (le nombre de colonnes de ta table).
De plus, ton code qui ecrit dans le fichier est un peu brouillon (Utiliser des variables $name et $Name va sans doute t'ammener a faire des erreurs un jour ou l'autre, $ptr est inutilise...).
Une derniere remarque: Ton code est trop lie a ta base de donnees.
Si vraiment le but est de faire des fichiers Excel, tu aurais pu creer une classe ExcelFile avec des methodes genre AddLine() ou Flush().
Ce serait beaucoup plus simple a reutiliser.
Tu aussi pourrais simplement ecrire dans la sortie standard (avec print ou echo). Avec les bonnes directives header(), le navigateur interpreterait ton script comme du Xls et passerait tout seul le controle a Excel sur le poste client (ou proposerait de l'enregistrer selon sa config).
Un autre avantage d'ecrire directement: Si ta table contient 50000000 de records, le serveur ne te jetera pas avec un "out of memory".
Sinon je confirme qu'utiliser du CSV ici aurait pratiquement fait la meme chose (sauf peut-etre si tu fusionnes des cellules dans ta table HTML et que Excel est capable de garder ce formatage, ou si tu changes les couleurs).
Ah oui, si tu pouvais faire quelque chose pour l'indentation de ton source... Ce n'est pas grand chose, mais ca augmente beaucoup la facilite de comprehension :o)
A+,
Eric
NB: Par contre, pour le niveau Expert... je crois qu'il faudrait revoir ca un peu a la baisse :o)
28 oct. 2007 à 20:58
Ne te braque pas à la moindre remarque que l'on fait à ton code, surtout lorsque les commentaires sont constructifs et argumentés.
Nous voulions juste t'expliquer que ton code ne tire en aucun cas profit du format XLS. Il aurait fallu utiliser un format d'échange plus neutre comme le CSV qui est vierge de mise en forme, plus léger et qui assure une meilleure comptabilité entre les logiciels de tableurs. En effet, le XLS est un format propriétaire de Windows. Bien qu'il soit lu par la majorité des logiciels de bureautique, rien ne t'assure qu'il sera supporté par un nouveau logiciel. Avec le CSV c'est plus sûr du fait de sa simplicité.
++
28 oct. 2007 à 19:31
27 oct. 2007 à 20:38
1/ Parceque c'est plus propre.
2/ Pour assurer la portabilité sur différents supports ou logiciels. Le format CSV est vierge de tout formatage de données. Chaque information est uniquement séparée un caractère (le plus souvent, un point virgule). Ton tableau html quant à lui impose une présentation ce qui n'est pas forcément pratique...
++
26 oct. 2007 à 16:48
En gros, tu ne tire pas profit de ce que xsl pourrait t'apporter.
Ici, pour toi, tu devrais générer un fichier xls tout parreil, mais ne mettre que les entêtes du tableau. Le reste se modifiera avec une règle de transformation xsl...