Extraction de la date d'un fichier excel

Messages postés
2
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
16 avril 2011
- - Dernière réponse : cs_GodConan
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
- 8 août 2011 à 18:01
Bonjour,

J'ai rencontré un probleme...je suis debutante en programmation .. j'ai effectuer un code java qui me permet d'afficher le contenu d'un fichier excel et de l'inserer dans une base mysql..
Mais le probleme qu'il m'affiche la date et l'heure sous forme d'un nombre comme 39815.177083333336... j'ai essayé de changer les types de données dans base de données mais aucun resultat... j'ai chercher sur net mais aucune solution

voila une partie de mon code:

public static void main(String args[])throws SQLException, ClassNotFoundException{
remplirbdfinal charpilot=new remplirbdfinal();
Scanner sc=new Scanner(System.in);
HSSFWorkbook wb;

try{
Connection connex = DriverManager.getConnection(PathAccessBD,UserBD,UserPasswordBD);

InputStream inp= new FileInputStream("C:\\departure.xls");

// recupère le fichier excel
wb = new HSSFWorkbook(new POIFSFileSystem(inp));
// Recupére page 1 du fichier xls
HSSFSheet sheet = wb.getSheetAt(0);
// Nrow Possede le nombre de ligne de la Feuille sheet
int Nrow = sheet.getLastRowNum();
System.out.println("Nombre de ligne de la feuille courante " + Nrow + "\n"+"\n"+"\n");

//compte nombre de colonnes
int r = sheet.getLastRowNum();
int max = 0;
int s = 0;
while(s<r){
if(sheet.getRow(s) != null){
int c = sheet.getRow(s).getLastCellNum();
if(c>max){
max = c;
}
}
s++;

}


System.out.println("Nombre de colonne de la feuille courante " + max + "\n"+"\n"+"\n");

String requete = "INSERT INTO trafic VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = connex.prepareStatement(requete);



//parcours la feuille et on recupère les lignes une par une
for(int i = Nrow-1; i>=0;i--){
HSSFRow row = sheet.getRow(i+1);

//parcours la ligne pour récupérer les colonnes
for(int j = 0 ;j<max;j++){
//Récupère la cellule puis sa valeur
HSSFCell cell = row.getCell((short)j);
Object value = ContenuCellule(cell);
System.out.println(value.toString());

stmt.setString(j+1,value.toString());

}

stmt.addBatch() ;

}
stmt.executeBatch();



}
catch(Exception e){
System.out.println("\n" + "Erreur!!!" + e.getMessage());

}
}
public static Object ContenuCellule(HSSFCell cell) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK) {
return "";
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
return cell.getBooleanCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_ERROR) {
return cell.getErrorCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
return cell.getCellFormula();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
return cell.getNumericCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
return cell.getRichStringCellValue();
}


return null;
}

}
Afficher la suite 

3 réponses

Messages postés
43
Date d'inscription
mercredi 17 novembre 2010
Statut
Membre
Dernière intervention
3 juin 2012
1
0
Merci
Salut,

quels sont tes types d'attributs dans ta base de données ?
Ne devrais tu pas caster tes Object avant de les enregistrer dans la base ?
Donnes nous plus de détails si tu veux que l'on t'aide.
Commenter la réponse de seb576
Messages postés
18
Date d'inscription
mardi 19 juillet 2011
Statut
Membre
Dernière intervention
12 août 2011
0
Merci
bonjour,
je suis débutante en java et je dois effectuer la même chose que toi.J'arrive à afficher le contenu du fichier excel dans la console d eclipse par contre je ne vois pas du tout comment l enregistrer en base de données ? Peux tu m'expliquer comment tu as procédé ou le cas échéant me montrer des bouts de codes

Merci d avance
Bonne fin d aprés midi
Intel42
Commenter la réponse de intel42
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
9
0
Merci
La c est un probleme MySQL ... regarde dans la doc les format de date valide pour mysql ( si ta colonne est bien du type date) et verifie que dans ta lecture de feuille excel tu recupere une valeur compatible...

Mais, les convertion de date d un systeme vers un autre c est souvent le bronx... perso je prefere passer par des chaine de caractere et faire les convertions si besoin... Donc enleve le type date ds excel et met le en Chaine ( ca peut ce faire en macro) et tu peux aussi la stocker en varchar ds mysql...



GodConan ;o)
Commenter la réponse de cs_GodConan