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

Documents Java Discussion :

lecture/ecriture dans un fichier excel


Sujet :

Documents Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut lecture/ecriture dans un fichier excel
    Bonjour,

    Je debute en Java.

    J'ai un fichier qui s'appelle "toto.xls" et un autre fichier "titi.xls" que j'ai créé par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File fichierEcriture = new File(parentpath, "titi.xls");
    HSSFWorkbook wb = new HSSFWorkbook();
    FileOutputStream fileOut = new FileOutputStream(fichierEcriture);
    Pouvez vous m'apprendre svp à:
    1- lire dans une cellule donnée de "toto.xls" (par ex B3)
    2- recupérer cette valeur pour la stocker dans une cellule donnée de "titi.xls" (par ex dans C5)

    Si vous ne pouvez pas me donner les lignes de codes qui permettent de faire cela, pouvez vous m'orienter vers un exemple concret traitant le meme cas que moi?

    Merci d'avance
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    une simple lecture de l'api devrait être suffisante. Les méthodes ont des noms clairs (getSheetAt(), getRow() et getCell() (dans l'ordre)).

    Une recherche dans les forums de developpez, tu trouvera quelques thread discutant de HSSFWorkBook avec des codes dedans.

    Désolé de pas plus pouvoir t'aider

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    Merci qd meme pour votre aide.

    Je laisse cette fiche ouverte en non resolu car je suis preneur de vos aides sur ce sujet.

    Merci
    -----------------------
    Cordialement
    Developpeur82

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    tjr sur le meme sujet et apres avoir regardé plusieurs sites j'ai pu trouver deja juste le code qui permet de lire/ecrire sur des fichier excel.

    je bloque sur un petit truc deja que je souhaite comprendre pour continuer mon programme.

    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
     
    String name = OpenFile.getSelectedFile().getName();
    String parentpath = OpenFile.getSelectedFile().getParent();
    //System.out.println(parentpath);
    System.out.println("point0");
    try {
    System.out.println("point1");
    File fichierLecture = new File(name);
    FileInputStream readFile = new FileInputStream (fichierLecture);
    HSSFWorkbook wbDonnee = new HSSFWorkbook(readFile);
     
    System.out.println("point2");
     
    HSSFWorkbook wbRes = new HSSFWorkbook();
    File fichierEcriture = new File(parentpath, "titi.xls");
    OutputStream writeFile = new FileOutputStream(fichierEcriture);
     
    System.out.println("point3");
     
    wbRes.write(writeFile);
     
    readFile.close();
    writeFile.close();
    }
    catch (IOException ex) {
        }
    System.out.println("point4");
    ce code n'est pas bien sur rempli c'est juste pour ecrire et lire dans un fichier excel.

    je ne comprend pas pourquoi son execution affiche juste les points d'arrets suivants:

    point0
    point1
    point4

    Merci d'avance pour votre aide.

    NB: Je n'ai tjr pas trouvé un cours ou tutorial ou exemple qui m'explique comment lire dans B2 et ecrire dans C4 par exemple... si vous avez ces 2 lignes de syntaxe je serai reconnaissant....
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    parce que tu as mis ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    catch (IOException ex) {
        }
    Ce qui est à ne jamais faire. En cas d'exception, tu perd l'information sur cette exception sans faire aucun traitement. Au minimum, affiche cette exception (ex.printStrackTrace()) histoire de savoir quand quelque chose foire.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    Merci tchize pr l'aide...

    j'ai mis dans le catch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(ex.toString());
    et ca m'affiche:

    point0
    point1
    java.io.FileNotFoundException: recette.xls (Le fichier spécifié est introuvable)
    point4

    pourquoi il ne trouve pas le fichier?!

    j'ai fait un test mais en commentant cette fois la partie lecture dans le try catch et ca marche:

    j'ai commenté ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //System.out.println("point1");
    //File fichierLecture = new File(name);
    //FileInputStream readFile = new FileInputStream (fichierLecture);
    //HSSFWorkbook wbDonnee = new HSSFWorkbook(readFile);
    merci...
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par developpeur82 Voir le message
    pourquoi il ne trouve pas le fichier?!
    dans 99% des cas, parce que le fichier n'existe pas là où tu le cherche.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    merci pr la reponse,

    j'ai rectifié un peu, la je suis suuuuuuuur de pointer vers le bon chemin:

    mon code est le suivant (n'a pas changé!)

    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
     
    private void AnalyseActionPerformed(java.awt.event.ActionEvent evt) {                                        
    String name = OpenFile.getSelectedFile().getName();
    String parentpath = OpenFile.getSelectedFile().getParent();
    File SelectedFile = OpenFile.getSelectedFile();
    String Path = SelectedFile.getPath();
     
    System.out.println("point0");
    try {
    System.out.println("point1");
    File fichierLecture = new File(Path);
    FileInputStream readFile = new FileInputStream (fichierLecture);
    HSSFWorkbook wbDonnee = new HSSFWorkbook(readFile);
     
    System.out.println("point2");
     
    HSSFWorkbook wbRes = new HSSFWorkbook();
    File fichierEcriture = new File(parentpath, "titi.xls");
    OutputStream writeFile = new FileOutputStream(fichierEcriture);
     
    System.out.println("point3");
     
    wbRes.write(writeFile);
     
    readFile.close();
    writeFile.close();
    }
    catch (IOException ex) {
     
        System.out.println(ex.toString());
    }
    System.out.println("point4");
    }
    l'execution affiche:

    point0
    point1
    java.io.IOException: Invalid header signature; read 2334382072165071188, expected -2226271756974174256
    point4

    est ce que ce message d'exception est parlant pour certain d'entre vous?!

    merci d'avance pour votre aide......
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    mauvais entete de fichier. T'es sur que c'est un fichier excel que tu ouvre? Et pas un autre type de fichier avec une extension .xls

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    tres bien, ca doit etre ca. J'ai commenté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //HSSFWorkbook wbDonnee = new HSSFWorkbook(readFile);
    et c ok!!

    mais dans ce cas là comment je peux appliquer mes methodes de lecture dans un fichier excel?

    je pensais utliser par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HSSFSheet th = wbDonnee.getSheetAt(1);
    HSSFRow ro = th.getRow(1);
    HSSFCell ce = ro.getCell((short)1);
    maintenant que je n'ai plus l'objet wbDonnee comment je fais pr lire dans ce fichier "excel"?

    Merci!!!!
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    la première chose à faire, c'est determiner le type de ton fichier. Ouvre le avec notepad et dit nous ce que tu vois dedans.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    en fait avec Wordpad et notepad++ j'ai la meme chose. Un fichier avec la meme structuraton des données en ligne/colonne. 2 cellules sont separés par un espace.

    Avec Bloc notes je vois un text qui n'est pas du tt structuré....
    -----------------------
    Cordialement
    Developpeur82

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    donc c'est pas des fichiers excel, vraisemblablement des fichiers csv. Oriente toi donc soit vers des librairies csv, soit vers une conversion préalable en excel de ton fichier.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Points : 80
    Points
    80
    Par défaut
    effectivement c'est un fichier CSV. ca marche maintenant... Merci tchize_ pour ton aide.

    Je vais fermer ce ticket étant donner que ce probleme est resolu. Je vais ouvrir un autre qui concerne comment afficher des camembers dans un fichier .xls


    Merci encore!
    -----------------------
    Cordialement
    Developpeur82

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture et Ecriture dans un fichier Excel
    Par qiqi1111 dans le forum C++
    Réponses: 2
    Dernier message: 18/12/2008, 19h10
  2. probleme lecture ecriture dans des fichiers
    Par xman_genius dans le forum C
    Réponses: 9
    Dernier message: 16/01/2007, 19h50
  3. Ecriture dans un fichier excel => performances
    Par Acarp47 dans le forum Access
    Réponses: 2
    Dernier message: 11/01/2007, 13h14
  4. Lecture ecriture dans un fichier binaire
    Par laetous dans le forum C
    Réponses: 13
    Dernier message: 26/08/2006, 08h50
  5. ouverture/lecture/ecriture dans un fichier en mode binaire
    Par dirty_boy dans le forum Débuter
    Réponses: 2
    Dernier message: 15/03/2006, 08h38

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