11
votes

Écrire une double valeur dans la cellule numérique avec format spécifique dans Apache POI 3.7

J'ai besoin d'écrire une double valeur dans une cellule numérique à l'aide d'un format spécifique, je veux dire, les XLS générés doivent avoir des cellules numériques contenant des valeurs doubles telles que, par exemple: 8,1. J'essaie quelque chose comme: xxx

mais, puisque la méthode de format renvoie une chaîne, que je crée des cellules comme numériques ou non, elles se comportent toujours comme des cellules de texte. Je pensais à deux options:

  • forcer les cellules à se comporter de cellules numériques.
  • Oublier sur DecimalFormat et utiliser la double classe Spécification des virgules comme séparateur décimal, ce que je ne suis pas sûr qu'il est possible.

    aucune idée?


0 commentaires

3 Réponses :


0
votes

Avez-vous besoin de mettre les deux valeurs dans une cellule? Pouvez-vous les diviser en 2 colonnes? Excel a une fonction intégrée de "textes aux colonnes" que vous devriez pouvoir faire référence à une colonne entière de chaînes de texte en plusieurs colonnes basées sur un délimiteur (comme une virgule). Dans VBA, il ressemble à ceci:

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True


1 commentaires

Merci d'avoir répondu, @Carmalize. J'ai peut-être mal expliqué moi-même, mais je n'ai pas "les deux valeurs", n'est qu'une double valeur en utilisant une virgule comme séparateur décimal.



19
votes

Il me manque peut-être quelque chose, mais je pense que vous voulez simplement styler la cellule avec une règle de format pour afficher une seule décimale xxx

qui créera une règle de formatage, crée une cellule , Définissez la cellule pour être la valeur 8.1, puis le style


2 commentaires

Merci @gagravarr, c'est exactement ce que je cherchais;)


Upvote pour un environnement amical et cela aide-moi à terminer mon travail et à faire ma journée!



8
votes

J'ai essayé cette fin fonctionnement ... xxx

La sortie est une valeur numérique avec le format souhaité: 2 500.000


1 commentaires

Supposons que je souhaite définir la décimale en utilisant le paramètre pour EXMP. dans cellstyleyle.setdataformat (hssfdataformat.getformat ("#, ## 0.000")); dans cela au lieu de "#, ## 0.000", 4 ou 5 décimales qui est int ou longue?