IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Import d'un fichier Excel dans une base de données MySql via POI


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut Import d'un fichier Excel dans une base de données MySql via POI
    bonjour,
    je suis débutante en java.Il m'a été demandé d'importer un fichier excel dans une base de données mysql.
    J'utilise des javabeans pour faire le mapping entre le monde objet et relationnel.Je travaille avec POI.Chaque feuille de mon fichier excel correspond à une table de ma base et les cellules du fichier excel sont associées aux champs de leurs tables respectives.Lorsque je le génére , j ai une fatal erreur fatal error program will exit .... et dans la console : java.lang.NoSuchMethodError: main
    Exception in thread "main"
    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    public class toto extends classe X ( elle permet de recuperer le fichier excel de faire un upload du fichier ) {
     
    public toto{
    }
     
    // Lecture des feuilles du fichier excel
    public void persitExcelDataFrom(String xlsPath) throws IOException {
     
    String filename ="C:chemin de l endroit ou se trouve le fichier excel";
    POIFSFileSystem fileSystem;
     
     
    try {
     
    fileSystem = new POIFSFileSystem(new FileInputStream(filename));
     
    HSSFWorkbook workBook = new HSSFWorkbook(fileSystem);
    HSSFSheet vers = workBook.getSheetAt(0);
    HSSFSheet pro = workBook.getSheetAt(1);
    HSSFSheet pre = workBook.getSheetAt(1);
    HSSFSheet sauv = workBook.getSheetAt(3);
    for (int i = 38; i < 42; i++)
    for (int j = 0; j < 21; j++) {
    HSSFRow row = pro.getRow(i);
    HSSFCell cell = row.getCell(j);
    Object value = ContenuCellule(cell);
    Object[][] o = null;
    o[i][j] = value;
    System.out.println("la valeur est : " +value);
    }
     
     
    } catch (IOException e) {
    }
     
    }
     
    private Object ContenuCellule(HSSFCell cell) {
    Object value = null;
    if (cell == null) {
    value = null;
    } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
    value = cell.getBooleanCellValue();
    } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
    value = cell.getCellNum();
    } else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
    value = cell.getStringCellValue();
    }
    return value;
    }
     
    }
    merci d avance pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    pour lancer un programme en Java, il faut que la classe contienne une méthode particulière: public static void main(String[] args) {}.

    Est-ce que vous avez défini cette méthode?

    Cordialement,
    Sébastien

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    oui effectivement entre temps j'ai rajouté cette méthode.
    Du coup je n ai plus de fatal error mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at com.power.fichier.controller.ParsingBean.persitExcelDataFrom(ParsingBean.java:47)-> code 	HSSFCell cell = row.getCell(j);
    	at com.power.fichier.controller.ParsingBean.main(ParsingBean.java:109) ->		poiExample.persitExcelDataFrom(xlsPath);
    et ma méthode contient le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static void main(String[] args) throws IOException {
    		ParsingBean poiExample = new ParsingBean();
     
    		String xlsPath ="chemin du fichier ";
     
    		poiExample.persitExcelDataFrom(xlsPath);
    	}

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Cela signifie que la variable "row" est null.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    je ne comprends pas trop pourquoi elle est null dans mon fichier la cellule contient bien quelque chose

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Ben regardez à quelle valeur de i correspond votre erreur et consultez à nouveau le document. Si row est null c'est qu'il n'y a pas de ligne à ce numéro là.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    après consultation il y a bien une ligne dans mon fichier excel à la ligne 37 case A donc en informatique cela correspond à i = 38 et j = 0 n 'est ce pas ?

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    plutot i=36

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    oui effective il me décalait les données de 2 donc i=36 ça marche
    j ai un autre souci j ai une cellule qui contient le nombre 32 mais dans la console il m 'affiche 18 et je ne vois pas le souci

Discussions similaires

  1. [MySQL] Importer fichier excel dans une base de donne mysql
    Par arkhang dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/03/2014, 11h07
  2. Réponses: 4
    Dernier message: 03/08/2012, 16h41
  3. [MySQL] Insérer le contenu d'un fichier Excel dans une base de donnée Mysql
    Par ghir_ana dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/07/2011, 15h46
  4. Réponses: 2
    Dernier message: 21/09/2007, 18h47
  5. importer une fichier excel dans une base de donnée MySQL
    Par maverick56 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/05/2007, 09h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo