IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[POI] HSSFDataFormat : écrire les nombres à la française


Sujet :

Documents Java

  1. #1
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut [POI] HSSFDataFormat : écrire les nombres à la française
    Bonjour,

    Je butte sur un problème
    Entre mon poste de dev (win) et mon serveur de prod (linux), j'ai un formatage différent des doubles dans mes exports XLS.
    Sur les deux, Locale.getDefault() retourne bien fr_FR

    Quand le fichier XLS du prod contient "1 234,56", c'est considéré comme nombre.
    Quand le fichier XLS du dev contient "1 234.56", c'est considéré comme chaîne de caractères.

    Je voudrais, quelque soit le lieu de génération du fichier XLS, toujours utiliser la locale fr_FR.

    Comment faire ?

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HSSFDataFormat df = wb.createDataFormat();
    HSSFCellStyle csValeurNbre = wb.createCellStyle();
    csValeurNbre.setDataFormat(df.getFormat("# ##0.00"));

    J'ai vu un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new HSSFDataFormatter(Locale)
    mais je ne vois pas ensuite comment passer du DataFormatter au DataFormat.getFormat(...) que j'applique à une cellule.

    POI 3.9

    Toute aide sera appréciée
    Membre éclairé, lol !

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    As-tu essayé avec les formats numériques prédéfinis ?
    Le Builtin format 4 correspond à ce que tu veux à priori...

    Sinon, le format avec séparateur de millier se code comme ceci que je sache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df.getFormat("#,##0.00")
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    Malheureusement cela ne change rien à l'affaire

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    csValeurNbre.setDataFormat(df.getFormat(HSSFDataFormat.getBuiltinFormat((short) 4)));
    csValeurNbre.setDataFormat(df.getFormat("# ##0.00"));
    csValeurNbre.setDataFormat(df.getFormat("#,##0.00"));
    csValeurNbre.setDataFormat(df.getFormat("0.00"));

    Ces 4 lignes donnent le même résultat (à l'exception de la 4e qui ne met pas de séparateurs de milliers) :
    1 234,56 pour un fichier XLS généré sur Windows
    1234.56 pour un fichier XLS généré sur Linux

    donc faut faire tout un tas de manip pour utiliser les nombres, remplacer point par virgule, mettre les cellules au format numérique...
    Membre éclairé, lol !

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2009, 16h27
  2. Les nombres complexe et delphi
    Par wikers dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 11h47
  3. Lire/écrire les registres
    Par Age Piranha dans le forum Windows
    Réponses: 11
    Dernier message: 11/03/2005, 18h31
  4. Réponses: 3
    Dernier message: 29/12/2004, 17h10
  5. écrire un nombre en lettre
    Par dibak dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 19/05/2004, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo