logo
  • Accueil
  • Apprendre
  • Partager
  • Blog
  • Connexion
  • S'inscrire
  • Publier Une Fiche
 
Pseudo           
 
Mot de passe   
 
Passe oublié ? | Inscription
 
  
  • Apprendre
  • Catégories/Fiches
  • Nouveautés
  • Tags
  • Rechercher

    avatar Utilisateur non identifié
    S'inscrire pour publier

Comment traiter un fichier Excel en JAVA avec l'API JXL ?

2748

Catégorie : Programmation    Création : Samedi 25 Août 2007

2748 consultation(s)   -   1 édition(s)   -   1 commentaire(s) - imprimer cette fiche

L'API JXL (ou JExcelAPI) est une API Java permettant de traiter un fichier Excel. C'est une alternative à l'API POI d'apache.

LogoJXL

Tout d'abord vous pouvez télécharger l'API ici :
jexcelapi.sourceforge.net/
Enfin, toujours interressant, la javadoc :
jexcelapi.sourceforge.net/resources/javadocs/current/docs/

Voici dans l'ordre, ce que nous allons voir :

Introduction
Choisir le fichier Excel à traiter
Sélectionner la feuille du classeur à traiter
Récupérer une cellule d'une feuille
Récupérer le texte d'une cellule
Créer un nouveau document
Ajouter une cellule
Récupérer le nombre de colonne ou de ligne
Conclusion

Commençons dès à présent l'explication de cette API.

Introduction

Un document Excel peut-etre décomposer en 3 objets principaux :
- Le classeur qui represente le fichier Excel
- La feuille qui represente un onglet du classeur.
- La cellule qui represente une case d'une feuille.

Les classes respectives associées à ces objets sont Workbook, Sheet et Cell.
Ainsi pour traiter une cellule nous aurons besoin d'un objet Workbook, d'un objet Sheet puis d'un objet Cell.

Bien sûr, JXL ne se limite pas a ces trois classes. Elle possède bien d'autres classes comme celles pour définir les types de celllules (numérique, date...), l'apparence d'une cellule (bordure, couleur...) etc.

Choisir le fichier Excel à traiter

Avant toute chose, il faut preparer le fichier que nous souhaitons traiter.
Pour cela, nous devons instancier un objet de la classe Workbook

        Workbook wb = null;
        ....
        try {
            wb = Workbook.getWorkbook(leFichierExcel);                  
        } catch (BiffException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

leFichierExcel est notre fichier et est un objet de la classe java.io.File


Sélectionner la feuille du classeur à traiter

Pour sélectionner une feuille il faut creer un objet de la classe Sheet
Pour récuperer une feuille, vous avez deux possibilités : soit en sélectionnant la feuille par le nom (String) soit par sa position (int)

        Sheet sheet = wb.getSheet("Feuille1");
        Sheet sheet = wb.getSheet(1);


Récupérer une cellule d'une feuille

Pour récupérer une cellule à partir d'une feuille, vous avez deux possibilités au niveau de la recherche :
Soit par le numéro de la colonne et le numéro de la ligne, soit par l'identifiant Excel du type "B6".

Cell cell = sheet.getCell(colonne,ligne);
Cell cell = sheet.getCell("B6");

colonne et ligne sont des entiers (int)

Récupérer le texte d'une cellule

A partir d'un objet de la classe Cell, pour avoir le contenu de la cellule, il faut utiliser la méthode getContents(); qui retourne un String.

String texteCellule = cell.getContents();
String texteCellule = wb.getSheet("Feuille1").getCell("A9").getContents;


Créer un nouveau document

Pour creer un document, vous avez la méthode createWorkbook() de la classe Workbook.
Cette méthode peut-être utilisé avec différents paramétres avec en premier lieu le paramètre du fichier/flux (java.io.File ou java.io.OutputStream).

        try {

            WritableWorkbook wb = Workbook.createWorkbook(new File("nomFichier.xls")); //création d'un classeur
            WritableSheet sheet = wb.createSheet("nom classeur", 0); //création d'une feuille
            //.....divers creations de cellules, feuilles....

            wb.write(); //Ecriture des modifications
            wb.close(); //Fermeture du document

        } catch (RowsExceededException e1) {
            e1.printStackTrace();
        } catch (WriteException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

Il est très important de fermer le classeur une fois le traitement Excel terminé.

Ajouter une cellule

Pour ajouter une cellule, plusieurs choix s'offre à vous. vous pouvez soit copier une autre cellule soit en créer une nouvelle.
Vous pouvez ajouter du texte (Label), soit une formule (Formula), une date (DateTime)...

    WritableSheet sheet....;
    Label cellule = new Label(1, 3, "Ecriture dans une cellule"); //Creation d'une cellule (label)
    sheet.addCell(cellule); //Ajout de la celulle
    cellule.copyTo(2,9); //Copie de la cellule précedent puis ajout dans la celulle de colonne 2 et ligne 9.


Récupérer le nombre de colonne ou de ligne

Il est possible de récuperer le nombre de ligne ou de colonne d'une feuille.
Le nombre de colonne est le nombre des colonnes allant de la premiere à la derniere non vide.
Idem pour les lignes.

        sheet.getRows(); // retourne un entier int indiquant le nombre de ligne.
        sheet.getColumns(); //retourne un entier int indiquant le nombre de colonne.


Conclusion

Comme vous avez pu le voir, grâce à cette API, la manipulation d'un document Excel est très simple.
Mais les possibilités sont bien plus grande que ce que j'ai décrit ici et je vous invite donc à aller jeter un oeil sur la documentation du site jexcelapi.sourceforge.net.
Il est possible de récupérer la liste des feuilles, d'insérer des formules ou des images...

Remonter en haut de l'article


N'hésitez pas à compléter cette article pour ajouter des précisions ou d'autres explications. Bon developpement JAVA-Excel !



J'ai testé cette fiche

Fiche grande qualité, j'ai suivi à la lettre tout le procédé, et j'ai pu manipuler mon doc excel .

Fiche testée par alexi, le Vendredi 12 Octobre 2007

Ajouter un commentaire


Fiche testée par , le Mardi 02 Décembre 2008

cbil
Auteur de 4 fiches

Ajoutez votre version
Note : 1   2   3   4   5

Information

  • Navigation : Retour haut de page
  • Themes : java, excel, jxl
  • Autorisation de reproduction : Creative Commons

Fiche dans la même catégorie

  • 437

    Comment créer un site multilingue ?

    Une fiche de cbil

  • 350

    Comment créer un flux rss ?

    Une fiche de polo6

  • 2748

    Comment traiter un fichier Excel en JAVA avec l'API JXL ?

    Une fiche de cbil


Categories

  • Vie quotidienne
  • Travaux Artistiques
  • Education
  • Informatique
  • Loisirs
  • Sport
  • Business
  • Internet
  • Bon plans




En bref

Skilltoo est une application de partage du savoir-faire communautaire et Web2.0.
Notre but est de rassembler un maximum de savoir sur un seul site.

Skilltoo est une application Web2.0 éditée par Elyweb SARL - Copyright 2007 / 2008