Apache POI Monnaie de Format de Données
J'essaie de convertir des nombres en monnaie européenne style avec Apache POI
HSSFDataFormat cf = workbook.createDataFormat();
currencyCellStyle = workbook.createCellStyle();
currencyCellStyle.setDataFormat(cf.getFormat("#.###,#0"));
J'ai par exemple le nombre de 2400 et 2.4
Ce que je veux, c'est 2400,00 et 2,40 .
Mais POI me donne 2400,0 et 2,40.
Quand j'ai essayer de le modifier pour
currencyCellStyle.setDataFormat(cf.getFormat("#.###,00"));
- Je obtenir le résultat 2400,00 et 2 400.
C'est pas non plus ce que je veux.
Est-il une possibilité d'obtenir à la fois des valeurs correctes?
Merci et Salutations
- Je pense que vous devez définir la chaîne de format des états-unis/royaume-UNI, style, puis ouvrez le fichier dans une copie d'Excel dans un pays Européen, et il va de rendu que vous attendez. Avez-vous essayer?
- thx qui fonctionne en partie. La virgule et le point sont définies dans le style européen lors de l'utilisation de "#,###.#0" qui est modifié lors de l'ouverture dans excel à 2.400,0 . Mais je ne reçois un zéro après la virgule. Le nombre d'entrée est de 2400.
- Qu'advient-il si vous créez un nouveau fichier dans Excel, le style comme vous le souhaitez, puis le charger dans Apache POI et de lire la chaîne de format, que voyez-vous là?
- parfait. J'ai créé un fichier excel et de définir le style d'une cellule à monnaie avec 2 chiffres. Puis j'ai lu le fichier avec apache poi et de lire le style de cellule à cellule.getCellStyle().getDataFormatString() et il est revenu '#,##0.00\ _€' j'ai Donc ajouté ce format que ma chaîne de format. J'ai donc eu des fc.getFormat("#,##0.00\\ _€") Et qui fonctionne parfaitement. Jamais vu cette mise en forme avec le symbole de l'euro et le trait de soulignement quelque part d'autre.
- Meilleur add-il comme réponse, de sorte que tout le monde sait que c'est résolu!
Vous devez vous connecter pour publier un commentaire.
Enfin Gagravarr a donné les bons conseils pour résoudre cette question.
La solution finale est:
La solution est venue après la création d'un fichier excel manuellement.
Ensuite lu par Apache Poi et
l'extraction de la chaîne de format avec
Le résultat a été #,##0.00\ _€
J'ai donc utilisé ce format dans la partie supérieure extrait de code, qui a donné le résultat correct.
Thx
# ##0,00 €;- # ##0,00 €;- €
était#,##0.00\ "€";\-\ #,##0.00\ "€";\-\ "€"
donc en Java, il a étégetFormat("#,##0.00\\ \"€\";\\-\\ #,##0.00\\ \"€\";\\-\\ \"€\"")
Une mise à jour de l'approche ci-dessus:
Après la création manuelle d'un fichier excel avec la devise mise en forme, la chaîne de format peut être obtenu dans la catégorie "Personnalisée (dans la boîte de dialogue Format de Cellule). De cette façon, nous n'avons pas besoin de lire le fichier excel via poi pour obtenir cette chaîne.
Ne peut pas écrire un Commentaire à cause de ma réputation. Mais si vous avez besoin d'Entiers € avec des points chaque 3ème Numéro (par ex. 24.000.123 €), le Patron est:
Afin de définir le format:
Espère que cela aidera certains.