Exporter le contenu d'un JTable vers Excel ?

amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 - 19 avril 2008 à 14:01
 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

7 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
19 avril 2008 à 19:56
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/
0
cs_rugamba Messages postés 1 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 30 août 2008
30 août 2008 à 12:41
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
0
amine1234Z Messages postés 134 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 31 mai 2010 4
31 août 2008 à 21:13
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 %
0
rokiainformatique Messages postés 1 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 29 juin 2011
29 juin 2011 à 15:34
vous pouver m'envoyé le code pour imprimer le contenu d'un JTable. merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DJINREY Messages postés 1 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 11 juillet 2011
11 juil. 2011 à 15:37
Bonjour Amine,
je voudrais aussi savoir comment vous avez réussie a imprimer le JTable dans excel.
Merci d'avance .
0
s'il vous plait vous pouvez m'envoyer comment faire pour imprimer une jTable dans un fichier Excel ?
0
chipsfromage
14 juin 2013 à 16:49
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 !!
0
merci
0