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 :

Exporter JTable en Excel


Sujet :

Documents Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Etudiante en programmation informatique
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Etudiante en programmation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Exporter JTable en Excel
    Bonjour à tous!!
    Je voudrais exporter mon jtable en excel!!quand j'appui sur le bouton imprimer, le menu qui affiche qui le dossier ou je veut exporter mon jtable s'affiche sur l'ecran mais quand j'appuie sur enregistrer il y a un message d'erreur:"NOT SUPPORTED YET"
    remaque:j'ai telecharger jexelapi et j'ai ajouter jxl.jar dans le libraries(je sais pas si c'est comme ça qu'on procède) aidez moi par pitié je bloque dessus depuis des jours.voici mon code pour exporter en excel:

    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
     
    if(tbl.getRowCount()==0)
    {
      JOptionPane.showMessageDialog(null,"Il n'y a pas de contenu a exporter");
      return;
    }
    JFileChooser chooser=new JFileChooser();
    FileNameExtensionFilter filer= new FileNameExtensionFilter("Archive excel","xls");
    chooser.setFileFilter(filer);
    chooser.setDialogTitle("garder archive");
    chooser.setMultiSelectionEnabled(false);
    chooser.setAcceptAllFileFilterUsed(false);
    if(chooser.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
    {
      ArrayList<JTable> tb=new ArrayList<>();
      ArrayList<String> mon=new ArrayList<>();
      tb.add(tbl);
      mon.add("accios");
      String file=chooser.getSelectedFile().toString().concat(".xls");
      try
      {
        java_application.Exporter e=new Exporter(new File(file), tb, mon);
      }
      catch(Exception ex){JOptionPane.showMessageDialog(null,"Erreur!"+ex.getMessage());}
    }

  2. #2
    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,

    C'est quoi cette classe java_application.Exporter ? Comment pourrait-on deviner pourquoi elle soulève cette erreur "NOT SUPPORTED YET" ? Ce message signifiant que quelque chose (quoi?) n'est pas encore supporté, cette classe ne peut pas faire ce que tu lui demandes de faire, parce que elle ne sait pas encore le faire... donc, à priori, il faudrait ne pas l'utiliser...

    Le but c'est vraiment d'exporter en excel, ou tu peux exporter en csv, ou tab-separated, à importer dans excel, ce qui sera plus simple à faire (juste faire une double boucle de parcourt, avec écriture dans le flux du fichier, et ajouter des séparateurs, entre chaque valeur et chaque ligne...

    Sinon, prendre une autre "exporteur" JTable->Excel qui fonctionne, ou l'écrire (on en trouve plein sur Internet des exemples, que ça soit avec JexcelAPI ou avec Apache POIFS).
    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.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Etudiante en programmation informatique
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Etudiante en programmation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    alors, si ce code ne marche vraiment pas alors je ne vais pas l'utiliser...Mais pourriez vous m'indiquer s'il vous plait un bon toturiel qui pourrait m'indiquer comment exporter un JTable que ce soit en excel ou en PDF parce que j'ai fouinée su inernet mais j'ai pas trop trouvé...

  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
    Je ne sais pas s'il y un tutoriel spécifique. Je n'en connais pas. Comme souvent en programmation, il faut assembler des briques différentes, pour chacune desquelles on trouve des tutoriels ou de simple documentation technique.

    Pour l'export de JTable, il suffit de parcourir les lignes de la JTable, de la première à la dernière (on connait le nombre de ligne par table.getRowCount()), et pour chaque ligne, on parcourt toutes les connes (on connait len ombre de colonnes par getColumnCount()). Pour récupérer une valeur avec lé numéro de ligne et de colonne, on utilise table.getValueAt().

    Faire la double boucle à partir de ça n'est pas sorcier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int ligne=0; ligne<table.getRowCount(); ligne++) {
       for(int colonne=0; colonne<table.getColumnCount(); colonne++) {
          Object value = table.getValueAt(ligne, colonne);
          /* ... */
       }
    }
    Il y aura une boucle spécifique pour exporter une ligne d'entête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int colonne=0; colonne<table.getColumnCount(); colonne++) {
       String name = table.getColumnName(colonne);
       /* ... */
       }
    Maintenant, on peut exporter les valeurs de chaque cellule.

    Pour l'export vers un CSV, on pourra utiliser Apache Common CSV. Il suffit de regarde la doc, en particulier la classe CSVPrinter.
    Par exemple :
    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
    final List<String> columnNames = new ArrayList<>();
    for(int colonne=0; colonne<table.getColumnCount(); colonne++) {
       String name = table.getColumnName(colonne);
       columnList.add(name);
       }
     
    try(PrintStream out = new PrintStream( file )) { // file est le fichier de destination (un java.io.File)
       final CSVFormat format = CSVFormat.EXCEL.withHeaders( columnNames.toArray(new String[columnNames.length]) );
       final CSVPrinter printer = format.print(out)
    } 
    for(int ligne=0; ligne<table.getRowCount(); ligne++) {
       for(int colonne=0; colonne<table.getColumnCount(); colonne++) {
          Object value = table.getValueAt(ligne, colonne);
          printer.print( value );
       }
       printer.println();
    }
    ou final CSVFormat format = CSVFormat.EXCEL.withDelimiter('\t').withHeader( columnNames.toArray(new String[columnNames.size()]) ); si tu veux du tab-separated.


    Pour exporte en XLS, tu pourras Apache POIFS utiliser http://poi.apache.org/spreadsheet/index.html. Par exemple :
    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
    Workbook wb = new HSSFWorkbook();
    	    //Workbook wb = new XSSFWorkbook();
    	    CreationHelper createHelper = wb.getCreationHelper();
    	    Sheet sheet = wb.createSheet("Feuille 1");
     
    	    // Create a row and put some cells in it. Rows are 0 based.
    	    // Create a cell and put a value in it.
    	    Cell cell = row.createCell(0);
    	    cell.setCellValue(1);
     
    	    for(int ligne=0; ligne<table.getRowCount(); ligne++) {
    		    Row row = sheet.createRow((short)ligne);
    			   for(int colonne=0; colonne<table.getColumnCount(); colonne++) {
    			      Object value = table.getValueAt(ligne, colonne);
    			      row.createCell(column+1).setCellValue(value);
    			   }
    	    }
     
     
    	    // Write the output to a file
    	    try(FileOutputStream fileOut = new FileOutputStream("workbook.xls")) {
    		    wb.write(fileOut);
    	    }

    Pour l'export vers PDF, tu as le choix entre :
    • Export brut, avec IText ou PDFBox. Lien ici.
    • Ou utiliser JasperReport/IReport : tu as la FAQ et les nombreux tutoriels qu'on trouve (export jtable to ireport).
    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
    Femme Profil pro
    Etudiante en programmation informatique
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Etudiante en programmation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Je te remercie beaucoup beaucoup de ton aide!!

Discussions similaires

  1. Exporter JTable sur Excel
    Par kokog dans le forum Documents
    Réponses: 1
    Dernier message: 29/05/2013, 07h53
  2. exporter jtable vers excel
    Par papypolo22 dans le forum NetBeans
    Réponses: 15
    Dernier message: 06/12/2010, 12h13
  3. comment exporter les données d'un jtable vers excel
    Par papypolo22 dans le forum NetBeans
    Réponses: 3
    Dernier message: 23/11/2010, 19h13
  4. Exporter le contenu d'une JTable vers excel
    Par JAVIR dans le forum Composants
    Réponses: 2
    Dernier message: 01/09/2007, 19h19

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