Obtenir de la Chaîne de valeur, quand j'ai lu à partir d'excel avec le type Date (apache poi)
J'ai un fichier xlsx que je lis avec - Apache POI Bibliothèque.
Par exemple,
Dans un certain nombre de lignes, j'ai de telles valeurs de cellules:
01-Sep-13 | 15136.00| Matt|......
Mon objectif est:
Lire toutes les cellules dans les lignes que les valeurs de Chaîne.
Mais comme je le vois, je ne peux pas lire 01-Sep-13 comme une chaîne de caractères,
il ne représente comme type de Date () avec la cellule.getDateCellValue();
1) ai-je Pu lire quelque sorte 01-Sep-13 comme une chaîne de caractères: "01-Sep-13";
2) Pourrais-je convertir Date de valeur de chaîne dans les cas, j'ai différents formats de date (jj /mm /aaaa) et (jj-MMM-yy);
Code:
Quand je itérer sur les lignes et les cellules, Apache POI analyse de chaque type de cellule:
String normalizeCellType(Cell cell) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
return cell.getRichStringCellValue().getString());
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue(); ????????????
System.out.println(date);
} else {
....
}
break;
case Cell.CELL_TYPE_BOOLEAN:
return ....
case Cell.CELL_TYPE_FORMULA:
return ....
default:
System.out.println();
}
}
OriginalL'auteur Sergii Lisnychyi | 2013-10-22
Vous devez vous connecter pour publier un commentaire.
Vous avez 2 options:
SimpleDateFormat
de la classe pour formater le retour de l'Date
comme unString
dans le format de votre choix. Vous pouvez avoir unSimpleDateFormat
instance pour chaque format dont vous avez besoin.DataFormatter
de la classe pour format la laCell
directement.OriginalL'auteur rgettman
Vous pouvez obtenir la valeur de retour de la cellule#getDateCellValue() et utiliser SimpleDateFormat pour le convertir en une Chaîne à l'instance
Vous pouvez obtenir la valeur de Date dans un format de Chaîne - 31/10/2013. Espérons que cela aide
OriginalL'auteur Keerthivasan
Voici les réponses à vos questions:
1) ai-je Pu lire quelque sorte 01-Sep-13 comme une chaîne de caractères: "01-Sep-13";
Oui, vous pouvez. Vous devez définir le type de Cellule à la Chaîne avant de le lire. Quelque chose comme ceci:
2.)Pourrais-je convertir Date de valeur de la chaîne en cas j'ai les différents formats de date (jj /mm /aaaa) et (jj-MMM-yy);
Depuis la première réponse est déjà en vous donnant la Chaîne de valeur.
Toujours pour convertir une Chaîne de valeur à la date que vous pouvez utiliser SimpleDateFormat @rgettman et @Keerthi suggéré
Espère que cela va aider...:)
OriginalL'auteur Mukesh S
sortie sera
Maintenant, il va donner de date dans
String
format que vous pouvez stocker dans votre base de données.OriginalL'auteur Aki
Apache POI a la fonctionnalité de le faire pour vous, vous juste besoin de l'appeler! La classe que vous devez utiliser est DataFormatter. Vous passez de cette cellule, et il fait de son mieux pour vous retourner une chaîne de caractères contenant ce qu'Excel vous montrer de cette cellule. Si vous passez une chaîne de cellules, vous aurez la chaîne de retour. Si vous passer numérique de la cellule avec les règles de mise en forme appliquée, sera le format du numéro de la base sur eux et vous donner la chaîne de retour. Si vous passer une "date" de la cellule (numérique cellule avec le formatage de la date des règles), il forme comme une date et vous donner la corde
Vous pouvez le voir en action avec cet aller-retour bits de code:
OriginalL'auteur Gagravarr
Mon objectif est: Lire toutes les cellules dans les lignes que les valeurs de Chaîne. Mais comme je le vois, je ne peux pas lire 01-Sep-13 comme une chaîne de caractères, il ne représente comme type de Date () avec la cellule.getDateCellValue();
Vous pouvez utiliser XSSFExcelExtractor ou ExcelExtractor pour obtenir correctement formaté valeur de la cellule.
Remarque: -
1) XSSFExcelExtractor est pour fichier XLSX
2) ExcelExtractor est pour fichier XLS
OriginalL'auteur jayeshecs
Il est si facile de lire une chaîne de valeurs dans la feuille excel à l'aide de java. c'est la façon dont mon..
OriginalL'auteur Udaya