Accueil > > > DÉMONSTRATION DU PACKAGE JXL
DÉMONSTRATION DU PACKAGE JXL
Information sur la source
Description
Ceci est un tout petit programme qui montre comment utiliser le package jxl. Ce package sert à manipuler des fichiers Excel (version 2000 au maximum). On y voit comment lire et créer un fichier Excel (un fichier de démonstration est à l'intérieure). NOTE IMPORTANTE : ce package est sous licence GNU (Gnuw's Not Unix). Autrement dit, ce package est gratuit, mais si on l'incorpore dans un programme qui est commercialisé ou pas, nous devons fournir non seulement le code source du package, mais de tout le programme également !!!! Pour plus de renseignement : http://www.andykhan.com/jexcelapi/ PS : pour que le programme fonctionne, il faut télécharger le package grâce au lien ci-dessus, créer un répertoire jexcelapi, le placer à l'intérieure et placer le répertoire au même niveau que le fichier excel.jar (le manifest qui se trouve à l'intérieure va chercher le package dans le répertoire courant)
Source
- package excel;
-
- /**
- * <p>Titre : Excel</p>
- * <p>Description : Classe permettant de tester le package jxl</p>
- * <p>Copyright : Copyright (c) 2004</p>
- * <p>Société : BakaOne</p>
- * @author Indiana_jules
- * @version 1.0
- */
-
- //Importation des packages nécessaires
- import java.awt.BorderLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.util.Vector;
- import javax.swing.JButton;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import jxl.Sheet;
- import jxl.Workbook;
- import jxl.write.Label;
- import jxl.write.WritableSheet;
- import jxl.write.WritableWorkbook;
-
- public class Excel extends JPanel{
- //Variables globales
- private MyTable table;
-
- //Constantes
- /**Permet d'indiquer si on ouvre un fichier excel*/
- public static final int OPEN = 1;
- /**Permet d'indiquer si on enregistre un fichier excel*/
- public static final int SAVE = 2;
-
- /**Constructeur par défaut*/
- public Excel() {
- super(new BorderLayout());
- }
-
- /**Constructeur
- * @param typeOp Permet d'indiquer si on veut voir un exemple d'enregistrement
- * ou un exemple de sauvegarde de fichier excel*/
- public Excel(int typeOp) {
- super(new BorderLayout());
- jbinit(typeOp);
- }
-
- /**Méthode permettant d'initialiser la classe
- * @param typeOp Permet d'indiquer si on veut voir un exemple d'enregistrement
- * ou un exemple de sauvegarde de fichier excel*/
- protected void jbinit(int typeOp) {
- //Variables nécessaire
- JButton bouton;
-
- if(typeOp == this.OPEN){ //Nous allons ouvrir un fichier excel
- table = new MyTable(new Vector());
-
- bouton = new JButton("Ouvrir un fichier excel");
- bouton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- JMyFileChooser choose = new JMyFileChooser(JMyFileChooser.OPEN_DIALOG);
- int valeur = choose.showOpenDialog(null);
-
- if(valeur == JMyFileChooser.APPROVE_OPTION){
- /*Nous allons vérifier que le fichier se termine bien par
- l'extension xls*/
- String filename = choose.getSelectedFile().getAbsolutePath();
-
- if(!filename.endsWith(".xls")){
- filename = filename + ".xls";
- }
-
- //Nous allons récupérer les données du fichier xls
- Vector data = new Vector();
- try{
- //1ére étape : nous créeons le Workbook
- Workbook workbook = Workbook.getWorkbook(new File(filename));
-
- //2nd étape : nous allons récupérons les données de la 1ére page du classeur
- Sheet sheet = workbook.getSheet(0);
-
- //3éme étape : nous lisons les cellules et nous les disposons dans la table
- Vector tempo;
- for(int i = 0; i < sheet.getRows(); i++){
- tempo = new Vector();
- for(int j = 0; j < sheet.getColumns(); j++){
- tempo.add(sheet.getCell(j, i).getContents());
- }
-
- data.add(tempo);
- }
-
- table.setData(data);
- table.refreshAll();
-
- //4éme étape : fermeture du flux
- workbook.close();
- }
- catch(Exception ex) {
- JOptionPane.showMessageDialog(null, "Impossible d'ouvrir le fichier xls", "Erreur", JOptionPane.ERROR_MESSAGE);
- }
- }
- }
- });
- }
- else{ //Nous allons sauver dans un fichier excel
- //Nous allons créer un data
- Vector v = new Vector();
- Vector a = new Vector();
- a.add("1");
- a.add("2");
- a.add("3");
- a.add("4");
- Vector b = new Vector();
- b.add("5");
- b.add("6");
- b.add("7");
- b.add("8");
- Vector c = new Vector();
- c.add("9");
- c.add("10");
- c.add("11");
- c.add("12");
- Vector d = new Vector();
- d.add("13");
- d.add("14");
- d.add("15");
- d.add("16");
- v.add(a);
- v.add(b);
- v.add(c);
- v.add(d);
-
- table = new MyTable(v);
-
- bouton = new JButton("Sauver dans un fichier excel");
- bouton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- JMyFileChooser choose = new JMyFileChooser(JMyFileChooser.SAVE_DIALOG);
- int valeur = choose.showSaveDialog(null);
-
- if(valeur == JMyFileChooser.APPROVE_OPTION){
- //Nous récupérons les données
- Vector data = table.getData();
-
- /*Nous allons vérifier que le fichier se termine bien par
- l'extension xls*/
- String filename = choose.getSelectedFile().getAbsolutePath();
-
- if(!filename.endsWith(".xls")){
- filename = filename + ".xls";
- }
-
- //Nous allons créer le fichier xls
- try{
- //1ére étape : création du WritableWorkbook
- WritableWorkbook workbook = Workbook.createWorkbook(new File(
- filename));
-
- //2nd étape : création de la 1ére page du classeur xls
- WritableSheet sheet = workbook.createSheet("First sheet", 0);
-
- //3éme étape : insérer les informations de la table dans le classeur
- Label label;
- Vector tempo;
-
- for(int i = 0; i < data.size(); i++){
- tempo = (Vector)data.get(i);
-
- for(int j = 0; j < tempo.size(); j++){
- label = new Label(j, i, tempo.get(j).toString());
- sheet.addCell(label);
- }
- }
-
- /*4éme étape : aprés avoir insérer les cellules, nous créeons le fichier
- et nous fermons le flux*/
- workbook.write();
- workbook.close();
- }
- catch(Exception ex) {
- JOptionPane.showMessageDialog(null, "Impossible de créer le fichier xls", "Erreur", JOptionPane.ERROR_MESSAGE);
- }
- }
- }
- });
- }
-
- this.add("Center", new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
- this.add("South", bouton);
- }
- }
package excel;
/**
* <p>Titre : Excel</p>
* <p>Description : Classe permettant de tester le package jxl</p>
* <p>Copyright : Copyright (c) 2004</p>
* <p>Société : BakaOne</p>
* @author Indiana_jules
* @version 1.0
*/
//Importation des packages nécessaires
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class Excel extends JPanel{
//Variables globales
private MyTable table;
//Constantes
/**Permet d'indiquer si on ouvre un fichier excel*/
public static final int OPEN = 1;
/**Permet d'indiquer si on enregistre un fichier excel*/
public static final int SAVE = 2;
/**Constructeur par défaut*/
public Excel() {
super(new BorderLayout());
}
/**Constructeur
* @param typeOp Permet d'indiquer si on veut voir un exemple d'enregistrement
* ou un exemple de sauvegarde de fichier excel*/
public Excel(int typeOp) {
super(new BorderLayout());
jbinit(typeOp);
}
/**Méthode permettant d'initialiser la classe
* @param typeOp Permet d'indiquer si on veut voir un exemple d'enregistrement
* ou un exemple de sauvegarde de fichier excel*/
protected void jbinit(int typeOp) {
//Variables nécessaire
JButton bouton;
if(typeOp == this.OPEN){ //Nous allons ouvrir un fichier excel
table = new MyTable(new Vector());
bouton = new JButton("Ouvrir un fichier excel");
bouton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JMyFileChooser choose = new JMyFileChooser(JMyFileChooser.OPEN_DIALOG);
int valeur = choose.showOpenDialog(null);
if(valeur == JMyFileChooser.APPROVE_OPTION){
/*Nous allons vérifier que le fichier se termine bien par
l'extension xls*/
String filename = choose.getSelectedFile().getAbsolutePath();
if(!filename.endsWith(".xls")){
filename = filename + ".xls";
}
//Nous allons récupérer les données du fichier xls
Vector data = new Vector();
try{
//1ére étape : nous créeons le Workbook
Workbook workbook = Workbook.getWorkbook(new File(filename));
//2nd étape : nous allons récupérons les données de la 1ére page du classeur
Sheet sheet = workbook.getSheet(0);
//3éme étape : nous lisons les cellules et nous les disposons dans la table
Vector tempo;
for(int i = 0; i < sheet.getRows(); i++){
tempo = new Vector();
for(int j = 0; j < sheet.getColumns(); j++){
tempo.add(sheet.getCell(j, i).getContents());
}
data.add(tempo);
}
table.setData(data);
table.refreshAll();
//4éme étape : fermeture du flux
workbook.close();
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Impossible d'ouvrir le fichier xls", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
}
});
}
else{ //Nous allons sauver dans un fichier excel
//Nous allons créer un data
Vector v = new Vector();
Vector a = new Vector();
a.add("1");
a.add("2");
a.add("3");
a.add("4");
Vector b = new Vector();
b.add("5");
b.add("6");
b.add("7");
b.add("8");
Vector c = new Vector();
c.add("9");
c.add("10");
c.add("11");
c.add("12");
Vector d = new Vector();
d.add("13");
d.add("14");
d.add("15");
d.add("16");
v.add(a);
v.add(b);
v.add(c);
v.add(d);
table = new MyTable(v);
bouton = new JButton("Sauver dans un fichier excel");
bouton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JMyFileChooser choose = new JMyFileChooser(JMyFileChooser.SAVE_DIALOG);
int valeur = choose.showSaveDialog(null);
if(valeur == JMyFileChooser.APPROVE_OPTION){
//Nous récupérons les données
Vector data = table.getData();
/*Nous allons vérifier que le fichier se termine bien par
l'extension xls*/
String filename = choose.getSelectedFile().getAbsolutePath();
if(!filename.endsWith(".xls")){
filename = filename + ".xls";
}
//Nous allons créer le fichier xls
try{
//1ére étape : création du WritableWorkbook
WritableWorkbook workbook = Workbook.createWorkbook(new File(
filename));
//2nd étape : création de la 1ére page du classeur xls
WritableSheet sheet = workbook.createSheet("First sheet", 0);
//3éme étape : insérer les informations de la table dans le classeur
Label label;
Vector tempo;
for(int i = 0; i < data.size(); i++){
tempo = (Vector)data.get(i);
for(int j = 0; j < tempo.size(); j++){
label = new Label(j, i, tempo.get(j).toString());
sheet.addCell(label);
}
}
/*4éme étape : aprés avoir insérer les cellules, nous créeons le fichier
et nous fermons le flux*/
workbook.write();
workbook.close();
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Impossible de créer le fichier xls", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
}
});
}
this.add("Center", new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
this.add("South", bouton);
}
}
Historique
- 20 septembre 2004 11:35:42 :
- Affichage du code principale
Bug curieux (que je n'ai pas corrigé) : quand on ouvre un fichier, la derniére colonne ne s'affiche pas (à voir)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SQLRE : SQL par Julien39
Cliquez pour lire la suite par Julien39
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|