Lecture de la valeur de date de cellule excel comme une Chaîne de caractères
Je suis en utilisant apache poi bibliothèque pour lire un fichier excel. Je suis bloqué lors de la lecture d'un mot de passe de la cellule. Si l'utilisateur donne la date en tant que mot de passe dans mot de passe de la cellule c'est à dire 16/05/2012. Je suis à la lecture de cette valeur en tant que "41045" alors que la valeur doit être "16/05/2012". C'est mon code :
cell = row.getCell(); //date in the cell password '16/05/2012'
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
cellValue = cell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if(cellCount == TEMPLATE_PASSWORD) {//if cell is password
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = cell.getRichStringCellValue().getString(); //value read is 41045 and not "16/05/2012"
}
break;
default:
}
n'importe qui peut aider à ce sujet?
Grâce.
jetez un oeil à ce fil, c'est presque la même, avec votre problème. stackoverflow.com/questions/3148535/...
Sur votre lien, il n'y a pas de solution en fonction de mes besoins.
Je pense que vous recevez un numéro à la place de la chaîne, car le type de cellule est numérique. Êtes-vous sûr que le type numérique est correcte pour un mot de passe de la cellule?
Sur votre lien, il n'y a pas de solution en fonction de mes besoins.
Je pense que vous recevez un numéro à la place de la chaîne, car le type de cellule est numérique. Êtes-vous sûr que le type numérique est correcte pour un mot de passe de la cellule?
OriginalL'auteur Nandkumar Tekale | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
La classe que vous soyez à la recherche de POI est DataFormatter
Lorsque Excel écrit le fichier, certaines cellules sont stockées comme des Chaînes de caractères littérales, tandis que d'autres sont stockées comme des numéros (y compris les dates). Pour ce dernier, une valeur à virgule flottante représentant la cellule est stocké dans le fichier, de sorte que lorsque vous demandez POI pour la valeur de la cellule qui est ce qu'il a fait.
Parfois, cependant, surtout quand on fait de l'Extraction du Texte (mais pas toujours), vous voulez faire de la valeur de la cellule regardez comme il le fait dans Excel. Il n'est pas toujours possible d'obtenir exactement dans une Chaîne de caractères (sans espace rembourrage par exemple), mais le DataFormatter classe, vous obtiendrez près.
Également noter que, dans Excel, les dates sont stockées comme des nombres à virgule flottante depuis ~1900, qui est pourquoi vous voyez un numéro n'est pas une date. Utilisation DataFormatter (ou similaire) à l'avoir rendue comme une date
Lorsque l'utilisateur entre une valeur dans la cellule, un format est appliqué (soit automatiquement, soit explicitement), qui est ce qui est utilisé pour le rendu. DataFormatter va simplement rendre la cellule de base sur quoi que ce format est.
OriginalL'auteur Gagravarr
Utiliser le code ci-dessous pour obtenir la date exacte de formiate comme u est entré dans la feuille excel.
OriginalL'auteur user3044855
La préfixation de la valeur de la cellule avec un " tout en économisant en xls rend dans une chaîne de cellules. Donc, ce que vous lisez à partir de cette cellule sera traitée comme une chaîne et se lisent comme est.
OriginalL'auteur nunchuckNinja