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")
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)
J'ai utilisé Big Decimal pour cela,
dCell.setCellValue(new BigDecimal("112.45").doubleValue());
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);
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