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

Java Discussion :

Exporter un JTable vers un fichier Excel


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Exporter un JTable vers un fichier Excel
    Bonjour

    je veux exporter les données d'un jtable vers un fichier excel

    voici mon code :

    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
    HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("Bordereau");
        int  a = jTable1.getRowCount();
        int b =jTable1.getColumnCount();
        for(int i=0;i<a;i++)
        {
           HSSFRow row = sheet.createRow(i);
           for(int j=0;j<b;j++)
           {
              HSSFCell cell = row.createCell((short)j);
               cell.setCellValue(jTable1.getValueAt(i,j));
           }
        }
     
     
        FileOutputStream fileOut;
        try {
          fileOut = new FileOutputStream("monfichier.xls");
          wb.write(fileOut);
          fileOut.close();
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
    mais ca marche pas parce que setCellValue ne possède pas un paramètre de type Object. comment je peut résoudre ce problème? et est ce qu'il existe une autre méthode différente de celle pour exporter un jtable vers excel?

    merci

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Peut être qu'en utilisant la méthode toString ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    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
    public class JExporter {
        public void exporter(JTable table, File file)
    {
    try
    {
     
    TableModel model = table.getModel();
    FileWriter out = new FileWriter(file);
    //BufferedWriter bw = new BufferedWriter(out);
     
    for(int i=0; i < model.getColumnCount(); i++) {
    out.write(model.getColumnName(i) + "\t");  
    }
    out.write("\n");
     
    for(int i=0; i< model.getRowCount(); i++) {
        for(int j=0; j < model.getColumnCount(); j++) {
          out.write(model.getValueAt(i,j).toString()+"\t");
     
    }
        out.write("\n");
    }
     
    out.close();
    } catch(Exception err)
    {
    err.printStackTrace();
     
    }
    } 
     
    }

    A chaque tentative d'exportation, une erreur est indiquee a la ligne suivante:
    out.write(model.getValueAt(i,j).toString()+"\t");

    java.lang.NullPointerException
    	at mesClass.JExporter.exporter(JExporter.java:26)
    	at GUI.FramePrincipale.jButton9ActionPerformed(FramePrincipale.java:2449)
    	at GUI.FramePrincipale.access$900(FramePrincipale.java:26)
    	at GUI.FramePrincipale$18.actionPerformed(FramePrincipale.java:1374)
    Je vous pris de m'aider.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut

    l'exception indiquée est éloquente : NullPointerException indique que tu invoque une méthode sur une variable qui pointe sur aucune instance.

    dans la ligne ou tu obtiens l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.write(model.getValueAt(i,j).toString()+"\t");
    soit out est null, mais on sait que non : elle contient un FileWriter instancié en début de méthode
    soit mode est null, mais c'est probablement pas le cas, une table ayant toujours un modèle
    soit model.getValueAt(i,j) est null, ce qui est possible : une cellule de table peut être "vide", ne contenir aucune valeur.

    tu peux remplacer cette ligne par exemple par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object value=model.getValueAt(i,j);
    if ( value!=null ) out.write(object.toString());
    else out.write("null"); // à la place de "null", tu peux mettre la valeur que tu veux dans le cas ou la cellule est vide, "" par exemple
    out.write("\t");

    PS : évite de poser de nouvelles questions à la fin d'une discussion déjà existante, même si elles ont un vague rapport avec l'origine de cette discussion : crées plutôt une nouvelle discussion. Et utilise les balises CODE pour encadrer ton extrait de code pour nous faciliter la lecture.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci pour les conseils et la solutions...

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

Discussions similaires

  1. Export de tables vers plusieurs fichiers excel
    Par miniquick dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2007, 00h11
  2. [Tableaux] Exporter une table vers un fichier excel
    Par julwarior dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2007, 15h42
  3. Réponses: 3
    Dernier message: 06/01/2007, 17h44
  4. export d'access vers un fichier excel prédéfini
    Par kuhnden dans le forum Access
    Réponses: 3
    Dernier message: 05/01/2006, 22h08
  5. [Excel] PHP-MYSQL exportation de données vers un fichier excel
    Par toure32 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/10/2005, 19h29

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