Extraction de la date d'un fichier excel

cs_tege Messages postés 2 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 16 avril 2011 - 10 avril 2011 à 08:49
cs_GodConan Messages postés 2113 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;
}

}

3 réponses

seb576 Messages postés 43 Date d'inscription mercredi 17 novembre 2010 Statut Membre Dernière intervention 3 juin 2012 1
28 avril 2011 à 16:21
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.
0
intel42 Messages postés 18 Date d'inscription mardi 19 juillet 2011 Statut Membre Dernière intervention 12 août 2011 6
8 août 2011 à 14:26
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
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
8 août 2011 à 18:01
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)
0
Rejoignez-nous