web-dev-qa-db-fra.com

Définition de la valeur de cellule Excel au format numérique à l'aide de POI

Je souhaite stocker des données numériques dans une feuille Excel.
Les données numériques sont représentées par le type String dans mon Java.
Est-il possible de le définir comme numérique sans le lancer?

J'ai essayé le code suivant, mais il n'a pas été converti en type numérique (je reçois un avertissement dans Excel disant que le nombre est stocké sous forme de texte ...)

HSSFCell dCell =...
dCell.setCellType(Cell.CELL_TYPE_NUMERIC);
dCell.setCellValue("112.45")
15
omrid

Vous devez fournir la valeur sous forme de double. Comme le doc dit :

setCellValue

public void setCellValue(double value)

définir une valeur numérique pour la cellule

Paramètres :

valeur - la valeur numérique pour définir cette cellule. Pour les formules, nous allons définir la valeur précalculée, pour les chiffres, nous allons définir sa valeur. Pour les autres types, nous changerons la cellule en une cellule numérique et définirons sa valeur.

Donc, ça devrait être

dCell.setCellValue(new Double("123"));

OR

dCell.setCellValue(123);  //Remember, the way you did was, you actually passed a string (no quotes)
24
Abhijeet Rastogi

J'ai utilisé Big Decimal pour cela,

dCell.setCellValue(new BigDecimal("112.45").doubleValue());
8
Kushan

Essayez d'utiliser des classes wrapper:

dCell.setCellValue(new Double(112.45));

BTW, cela fonctionnera si vous donnez simplement la valeur au lieu des doubles cotes comme suit:

dCell.setCellValue(112.45);
2
Arun

Ancien mais toujours cela aidera quelqu'un de .NET qui utilise NPOI

dCell.setCellValue(Convert.ToDouble(112.45));

Nous avons

cell.SetCellType(NPOI.SS.UserModel.CellType.NUMERIC); 

ce qui ne supprime pas l'avertissement, mais le premier code a fonctionné après la conversion en nombres doubles pour tous et valeurs doubles en .net

1
Peru