Exporter le contenu d'un JTable vers Excel ?

Messages postés
134
Date d'inscription
samedi 26 mai 2007
Dernière intervention
31 mai 2010
- - Dernière réponse :  najib - 3 mai 2016 à 13:04
Salut
en afit j'ai pu trouver comment Imprimer le contenu d'u Jtable, mais
le probléme c'est au niveau des noms des colones, ils apparait pas bien
dans l'impression
donc je veux ajouter la possibliter de transfer le contenu de mon Jtable
vers un nouveau fichier Excel(de crée un nouveau fichier)
pour pouvoir imprimer dans des condition parfait

Merci
Afficher la suite 

Votre réponse

7 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
0
Merci
Salut:

Il y a plusieurs API open-source pour travailler avec MS Excel:

1. jexcelapi.sourceforge.net/

2. www.jxcell.net/

3. poi.apache.org/
Commenter la réponse de Ombitious_Developper
Messages postés
1
Date d'inscription
mardi 4 mai 2004
Dernière intervention
30 août 2008
0
Merci
Bonjour amine,
je sais que ça fait longtemps que t'as écris dans ce forum mais pourrais tu me dire comment t'as réussi à imprimer le contenu d'un JTable?
Merci d'avance
Commenter la réponse de cs_rugamba
Messages postés
134
Date d'inscription
samedi 26 mai 2007
Dernière intervention
31 mai 2010
0
Merci
Salut rugamba
je suis pas chez moi dans ces jours
dans les jours suivant je vais t'envoyé le code pour imprimmer un Jtable
@+

% Mauvais Sens %
Commenter la réponse de amine1234Z
Messages postés
1
Date d'inscription
mercredi 29 juin 2011
Dernière intervention
29 juin 2011
0
Merci
vous pouver m'envoyé le code pour imprimer le contenu d'un JTable. merci
Commenter la réponse de rokiainformatique
Messages postés
1
Date d'inscription
mercredi 3 juin 2009
Dernière intervention
11 juillet 2011
0
Merci
Bonjour Amine,
je voudrais aussi savoir comment vous avez réussie a imprimer le JTable dans excel.
Merci d'avance .
Commenter la réponse de DJINREY
0
Merci
s'il vous plait vous pouvez m'envoyer comment faire pour imprimer une jTable dans un fichier Excel ?
Commenter la réponse de rihabz
0
Merci
Bonjour, je suis tombé par hasard sur ce topic, je me suis dit que j'allais (enfin !) servir à quelque chose

voilà le code :
import java.awt.Color;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JFileChooser;
import javax.swing.table.AbstractTableModel;

import jxl.CellView;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

//......... déclaration de la classe

public static void enregistrerDevis(JTable modelTab, String nomFichier){
AbstractTableModel modelTab 

String chemin;

JFileChooser chooser = new JFileChooser("JFileChooser");
chooser.setApproveButtonText("Enregistrer ici");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
chemin = chooser.getSelectedFile().getAbsolutePath();

try {
// Création du fichier
WritableWorkbook workBook = Workbook.createWorkbook(new File(chemin + "\" + nomFichier + ".xls"));

WritableSheet sheet = workBook.createSheet("Feuille 1", 0);

Label label;
WritableCellFormat cellFormat;

cellFormat = new WritableCellFormat();
cellFormat.setBackground(Colour.GREY_25_PERCENT);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);

for(int col = 0 ; col < modelTab.getColumnCount(); col++)
{
label = new Label(col, 0, (String) modelTab.getColumnName(col), cellFormat);
sheet.addCell(label);
}

WritableCellFormat cellFormat2 = new WritableCellFormat();
cellFormat2.setBackground(Colour.WHITE);
cellFormat2.setBorder(Border.ALL, BorderLineStyle.THIN);

int dernLig = 0;

for(int lig = 0 ; lig < modelTab.getRowCount(); lig++)
{
for(int col = 0 ; col < modelTab.getColumnCount() ; col++)
{
label = new Label(col, lig+1, (String) modelTab.getValueAt(lig, col), cellFormat2);
sheet.addCell(label);
}
dernLig = lig+1;
}

CellView cell = new CellView();

for(int col = 0 ; col < sheet.getColumns() ; col++)
{
cell = sheet.getColumnView(col);
cell.setAutosize(true);
sheet.setColumnView(col, cell);
}

workBook.write();
// On ferme le fichier Excel
workBook.close();

if ( Desktop.isDesktopSupported() ) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.OPEN)) {
try {
desktop.open(new File(chemin + "\" + nomFichier + ".xls"));
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


Ce code permet de générer un fichier Excel à partir d'une JTable, en recopiant les en-têtes sur un fond gris.

Ca ouvre d'abord un JFileChooser pour choisir le dossier de destination, et une fois le fichier généré, il s'ouvre.

'Oilà !! En espérant que ça serve encore à quelqu'un un jour !!
Commenter la réponse de chipsfromage

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.