Formatter une cellule Excel depuis une page HTML générée

Une nouvelle problématique rencontrée ces jours derniers  : une application génère un fichier Excel (format .xls) contenant du code HTML (<table><tr><td>) que le logiciel pourra interpréter pour reconstituer un tableau classique.
Maintenant, on rempli le tableau avec les données manipulées... Mais voilà, une de ces données est sous la forme d’un nombre long, composé d’une petite dizaine de chiffres. En ouvrant le fichier Excel, je m’aperçois que mon nombre se retrouve affiché sous la forme suivante  :

9,0384E+11

Arf... Comment faire pour qu’il s’affiche dans son entier, sans décimale?... Des quotes? Voilà le résultat affiché :
"90384104738″

Presque ça… Mais en fait la solution n’est pas du tout dans cette direction!
Pour contrecarrer la fâcheuse habitude d’Excel de transformer les nombres, il faut utiliser... du CSS!! Oui, Oui c’est bien ça… Mais pas n’importe quel style, celui de Micro$oft!!

Alors là je pense que les puristes du CSS se seront déjà évanouis! Mais prenez le temps de regarder le petit bout de code ci-dessous, il n’en est pas moins très utile :

.xl28 {mso-style-parent:style0; mso-number-format:00000; text-align:left; white-space:normal;} 

Comme vous le voyez, on retrouve les tags classiques des styles générés par Word&co (mso-…). Examinons le tout de même : on comprend clairement qu’il permet de définir le format de la cellule en question (mso-number-format) comme numéraire sans décimale. Ceci aura pour conséquence d’autoriser l’affichage de notre nombre dans son entier! Vous n’avez plus qu’à appliquer cette classe à votre <td> et le tour est joué.

Vous trouverez d’autres exemples d’utilisation de ces styles CSS ici, ou bien sur ce forum, fournissant des exemples plus poussés (formatage de dates...). Eh oui, comme vous le constatez, le fameux adage se vérifie encore : "Si tu as un problème, regarde sur Internet, quelqu’un d’autre l’a forcément eu avant toi!" Encore faut-il savoir où chercher, je ne vous le fais pas dire… Mais c’est pour cela que ce blog existe après tout!!

Pour terminer, dans d’autres cas, si cette méthode ne marche pas, vous pouvez “forcer” Excel à afficher strictement le contenu désiré simplement en écrivant :

="mon-info"

Normalement, le logiciel gardera intacte la donnée.


Fichier(s) joint(s) :

0 commentaires: