Exporter le contenu d'un JTable vers Excel ?

Signaler
Messages postés
134
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
31 mai 2010
-
 najib -
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

7 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
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/
Messages postés
1
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
30 août 2008

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
Messages postés
134
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
31 mai 2010
4
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 %
Messages postés
1
Date d'inscription
mercredi 29 juin 2011
Statut
Membre
Dernière intervention
29 juin 2011

vous pouver m'envoyé le code pour imprimer le contenu d'un JTable. merci
Messages postés
1
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
11 juillet 2011

Bonjour Amine,
je voudrais aussi savoir comment vous avez réussie a imprimer le JTable dans excel.
Merci d'avance .
s'il vous plait vous pouvez m'envoyer comment faire pour imprimer une jTable dans un fichier Excel ?

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 !!