DÉMONSTRATION DU PACKAGE JXL

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 17 sept. 2004 à 16:54
Hannah023 Messages postés 3 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 16 août 2010 - 16 août 2010 à 02:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26230-demonstration-du-package-jxl

Hannah023 Messages postés 3 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 16 août 2010
16 août 2010 à 02:51
Bonjour,
Je relance cette discussion parce que j'ai un problème et je voudrai bien que quelqu'un puisse m'aider à le résoudre car c'est très urgent et très important.
J'ai un fichier excel que je veux lire et appliquer des traitements spécifiques sur son contenu.
J'ai parcouru le fichier et j'ai sauvegardé les données dans des collections et des vectors et par la suite j'ai appliqué les traitements dont j'ai besoin mais, malheureusement, j'ai pas eu de résultats et j'arrive pas à cerner le problème et trouver l'emplacement de l'erreur.
j'espère que quelqu'un puisse m'aider à trouver une solution à mon problème car c'est très très urgent, il s'agit de mon projet de fin d'étude.
Merci d'avance!
sadia7 Messages postés 1 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 12 février 2010
12 févr. 2010 à 14:16
Bonjour

Je suis vraiment débutant dans le développement. Je compte apprendre VBA mais dans quelques jours je commence.

J'ai vraiment apprécié la solution package et elle va beaucoup me servir. Je développe des
petites applications sur Excel (gestion de stocks, de trésorerie, gestion des salaires...). Je crée plusieurs fichier liés avec des liens hypertextes. Je souhaiterais constitué un pack qui permet de télécharger tous les fichiers liés en même temps. Mille merci de votre aide.
Sucana Messages postés 4 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 23 octobre 2009
23 oct. 2009 à 17:27
merci pour votre aide ca m'aide enormement merci encore
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
23 oct. 2009 à 16:37
Bonjour

Dans le zip se trouve un jar contenant toutes les classes nécessaires et qui lancer la démo. Le bout de code ci-dessus est une illustration de la démo, mais il doit être extrapoler en fonction de ses besoins et des APIs qu'on a (exemple, j'ai créer une api pour me faciliter la vie où j'ai une classe MyFileChooser. Dans ton cas, il faudra passer par un JFileChooser).

Le but de ce code était de montrer à l'époque un exemple d'utilisation. A partir de cet exemple, tu devrais pouvoir écrire ton propre bout de code.

Voici une classe générant des données de manières aléatoires :
/**
* Hello world!
*
*/
public class App
{
private static final Integer NB_COLUMN = 25;
private static final Integer NB_ROW = 10000;

public static void main( String[] args )
{
System.out.println("Test de JExcelApi");

// Création des données
System.out.println("Début de création des données (" + NB_COLUMN + " colonnes, " + NB_ROW + " lignes d'enregistrements avec des données aléatoires)");
List<String> headerData = new ArrayList<String>();
for(Integer i = 0; i < NB_COLUMN; i++){
headerData.add("Colonne num " + i);
}

List<List<String>> datas = new ArrayList<List<String>>();
for(Integer i = 0; i < NB_ROW; i++){
List<String> row = new ArrayList<String>();
for(Integer j = 0; j < NB_COLUMN; j++){
row.add("" + (Math.random() * 1000));
}
datas.add(row);
}

System.out.println("Fin de création des données");

// Création d'un workbook
try {
System.out.println("Création d'un workbook dans un fichier externe (test.xls)");
WritableWorkbook workbook = Workbook.createWorkbook(new File("test.xls"));

System.out.println("Fin de création d'un workbook");

// Création d'une feuille
System.out.println("Création d'une feuille ('test jxl')");
WritableSheet sheet = workbook.createSheet("test jxl", 0);

System.out.println("Fin d'une feuille");

// Insertion de l'entête
System.out.println("Insertion de l'entête");

sheet.getSettings().setDefaultColumnWidth(25);
WritableCellFormat cellFormat = new WritableCellFormat(
new WritableFont(WritableFont.COURIER, 16, WritableFont.BOLD));
cellFormat.setBorder(Border.ALL, BorderLineStyle.MEDIUM, Colour.RED);

for(Integer i = 0; i < NB_COLUMN; i++){
sheet.addCell(new Label(i, 0, headerData.get(i), cellFormat));
}

System.out.println("Fin de l'insertion de l'entête");

// Insertion des données
System.out.println("Insertion des données");
for(Integer i = 0; i < NB_ROW; i++){
List<String> rowData = datas.get(i);
Integer index = 0;

for(String cellData : rowData){
sheet.addCell(new Label(index, i + 2, cellData));
index++;
}
}

System.out.println("Fin d'insertion des données");

// Enregistrement du fichier Excel
workbook.write();
workbook.close();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

System.out.println("Fin d'enregistrement du fichier");
}
}

Bonne continuation
Sucana Messages postés 4 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 23 octobre 2009
23 oct. 2009 à 15:36
Bonjour,
excuse moi ma kestion paraitra bete on ne vois pas ca en cours et en plus chui debutante
je ne trouve pas de methode main dans le programme et j'ai coe l'impression kil me faut une classe MyTable etMyFileChooser je me trompe?
merci encore pour ton aide
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
23 oct. 2009 à 13:59
Bonjour,

Je crains que le package ne soit pas installé, et que tu failles le télécharger soit manuellement (puis le préciser dans ton projet Eclipse), soit en le précisant dans ton pom si ton projet est géré par Maven.

Voilà
Sucana Messages postés 4 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 23 octobre 2009
23 oct. 2009 à 13:15
merci pour votre reponse tres rapide j'ai essaye de tester le programme mais j'ai tellement de faute j'ai juste copie le programme et je l'ai colle dans mon environnement(eclipse je suppose ke le package y est deja installe)
sais tu peux etre ou la faute pourrais venir si le programme marche chez les autres pourkoi pas chez moi?
Merci pour vos reponses
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
23 oct. 2009 à 12:35
Bonjour,

Je ne comprends pas bien ta question en fait. Si tu veux juste consulter le fichier Excel via JXL, il suffit normalement de faire :
Workbook workbook = Workbook.getWorkbook(new File(nomEtEmplacementDeTonFichierExcel));

De là, tu pourras le manipuler via Java.

Si tu veux modifier un champ et sauvegarder ton Workbook (et donc de ne pas re-remplir ton fichier Excel), je pense qu'il faille faire cela:

WritableWorkbook workbookASauver = Workbook.createWorkbook(new File(nomEtEmplacementDeTonFichierExcel), workBook);
workbookASauver.write(); // va écraser ton fichier avec les modifications que tu as faites

Voili voilà
Sucana Messages postés 4 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 23 octobre 2009
23 oct. 2009 à 11:19
comment faire quand on a deja un fichier excel et que l'on veut le mettre dans java j'ai pas envie de remplir le fichier je l'ai deja sauvegarde quelque part
merc d'avance
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
7 nov. 2007 à 14:23
il n'y a pas de quoi

(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant
oussama83tunis Messages postés 4 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 14 décembre 2007
7 nov. 2007 à 14:19
aaahhh oui.merci vraiment merci..:)ça y est je l'ai eu.:) pourtant ça a été devant moi..:) allez bonne journée.
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
7 nov. 2007 à 13:45
Salut,
ça fait un bail que je n'ai pas bossé sur cette API, mais je te conseille de regarder le tuto du créateur de l'API, notamment ce lien : http://www.andykhan.com/jexcelapi/tutorial.html#formatting%20numbers

qui permet justement de formater les cellules pour des chiffres

Voili voilà
oussama83tunis Messages postés 4 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 14 décembre 2007
7 nov. 2007 à 13:41
Salut je voulais vous dire que votre travail est bien util.Mais j'ai un pti problème en ce qui concerne les formats des nombres decimaux extraits.j'ai testé l'extraction des données du fichier excel que je veux lire et je n'obtient qu'une precision de 10 -3 malgré que les nombres décimaux que j'ai dans le fichier excel ont la forme de 0.324567.Je demande ton aide sur ce sujet.merci d'avance.
zahourti Messages postés 1 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 2 mai 2007
2 mai 2007 à 08:34
merci
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
5 sept. 2006 à 12:03
Il faut telecharger le package via ce lien : http://www.andykhan.com/jexcelapi/

ensuite 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

voilà
adan2201 Messages postés 1 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 27 juin 2006
27 juin 2006 à 14:25
salu a tous
j'ai fait comme dans le commentaire pour utiliser ton programme
mais quand je le compile il me met package jxl.jar introuvable.
peut tu me dire ce que je dois faire? please
wissam_ibtissam Messages postés 4 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 6 mars 2006
6 mars 2006 à 15:42
salut, comment on convertie un fichier Excel en un fichier XML par JAVA?
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
29 juin 2005 à 10:07
Ya pas de quoi :p (pour la licence GNU, je l'avais bien précisé dans la description de ma source, mais il est toujours utile de le repréciser)
Shadock80 Messages postés 1 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 21 juin 2005
21 juin 2005 à 11:06
"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 !!!!"

Cela fait plusieurs fois depuis que je me renseigne sur jxl que je retrouve cette erreur, donc je tiens à la corriger ici pour les prochains qui se renseigneront sur cette API :-) : jxl est sous licence GNU LGPL, et non GNU GPL.
La licence GPL oblige toute application qui utilise tout ou partie de son code a etre place sous licence GPL.
La licence LGPL permet d'utiliser son code au sein de n'importe quelle application sans imposer la licence de l'application finale. On peut donc créer une application commerciale à partir d'un programme sous licence LGPL sans problème.
Beaucoup de personnes font l'amalgame licence GNU = GPL, or il existe plusieurs licences GNU (GPL, LGPL, GFDL).

Pour ceux qui veulent en savoir plus :
licence GNU GPL :
en anglais : http://www.gnu.org/licenses/gpl.html
en francais (traduction non officielle) : http://www.april.org/gnu/gpl_french.html
licence GNU LGPL :
en anglais : http://www.gnu.org/licenses/lgpl.html
en francais (traduction non officielle) : http://www.rodage.org/lgpl.fr.html

En espérant que cela évitera à de futurs utilisateurs de passer a côté de cette excellente API qu'est jxl (qui est en plus assez simple d'utilisation)


Merci à indiana_jules pour ce code bien commenté qui m'a été très utile pour la "prise en main" de cette api ;-) (pas facile de trouver des exemples, et encore moins en francais)
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
2 févr. 2005 à 09:04
La meilleure solution = que Sun l'incorpore dans son JDK/SDK. Sinon, l'installer sur chaque poste qui utilise un programme java et en modifiant le path du système afin qu'il l'utilise.
the_gaston Messages postés 8 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 27 mars 2005
18 janv. 2005 à 09:50
Salut a tous!
j'aimerai s'aivoir comment il faut faire pour deployer Jxl pour qu'il soit utilisable par toutes les applications java

Merci et a bientot
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
4 oct. 2004 à 14:05
Ben je pense que tu analyses le fichier XML avec SAX ou DOM, et que ensuite, pour chaque gros "ensemble", l'insérer directement dans le feuille Excel, sans passer par un vector.
cs_vin100time Messages postés 2 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 11:54
Bravo pour ton programme, par contre, as tu une idée pour transposer un fichier xml en un fichier xls en java?
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
17 sept. 2004 à 17:27
ya pas de quoi :p
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
17 sept. 2004 à 16:54
tres bonne idee de source ... ;o)
Rejoignez-nous