Précédent   Forum des professionnels en informatique > Java > Général Java > APIs
APIs Forum sur les API standard et API complémentaires. Avant de poster -> FAQ Java, Les meilleures API Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 17h27   #1
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
Par défaut Génération de document word en java

Bonjour,

Je souhaite manipuler des document word en java (création et consultation).
j'ai fait des recherches sur le net mais en vin.

Pouvez-vous s'il y' a une piste pour ça?.
Merci d'avance.
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 22h02   #2
Membre régulier
 
Inscription : février 2008
Messages : 84
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 84
Points : 91
Points : 91
As tu regardé ici :
http://poi.apache.org/
__________________
Sébastien
Mon site www.outofcaffeineexception.org
MrCba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 23h29   #3
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
J'ai utilisé POI pour des PDF seulement .
je vais me plonger dedans.

Merci bcp pour votre indication.
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 08h19   #4
Membre régulier
 
Inscription : février 2008
Messages : 84
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 84
Points : 91
Points : 91
Quelques choses comme ceci à priori ;

Code :
1
2
3
4
5
6
7
8
9
10
HWPFDocument doc = new HWPFDocument(new FileInputStream("C:\\temp\\sample1.doc"));
Range range = doc.getRange();
CharacterRun run = range.insertAfter("Hello World!!! HAHAHAHAHA I DID IT!!!");
run.setBold(true);
run.setItalic(true);
run.setCapitalized(true);
OutputStream out = new FileOutputStream("C:\\temp\\sample1.doc");
doc.write(out);
out.flush();
out.close();
A priori petit POI est moins avancé sur Word qu'il l'ai actuellement sur Excel. Donc à voir si cela répond correctement à tes besoins.
__________________
Sébastien
Mon site www.outofcaffeineexception.org
MrCba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 11h08   #5
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
Merci pour votre réponse.

J'ai essayé ton code mais ça donne une exception au niveau de l'instruction suivante :

Code :
HWPFDocument doc = new HWPFDocument(new FileInputStream("E:\\Cabinet\\testForPDF\\exemple.doc"));
Voici l'exception :

Code :
1
2
3
4
5
6
Exception in thread "main" java.io.FileNotFoundException: E:\Cabinet\testForPDF\exemple.doc (Le fichier spécifié est introuvable)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at rachid.cabinetMedical.transverse.beans.GenererWord.main(GenererWord.java:24)
Java Result: 1
Sachant que le répertoire E:\Cabinet\testForPDF\ existe.

après j'ai crée le fichier exemple.doc mais ça pas marché.

Normalement on doit avoir seulement le répertoire, si le fichier n'existe pas il doit le créer non?.

Merci pour votre aide.
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 12h06   #6
Membre régulier
 
Inscription : février 2008
Messages : 84
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 84
Points : 91
Points : 91
Citation:
Normalement on doit avoir seulement le répertoire, si le fichier n'existe pas il doit le créer non?.
Selon la documentation FileInputStream : non.

De toute façon la c'est FileInputStream qui est pas content car il as besoin que le fichier existe déjà.

Tu as du avoir une autre erreur après la création de ton fichier sinon tu doit avior une erreur dans ton chemin. Le chemine est case sensitive.
__________________
Sébastien
Mon site www.outofcaffeineexception.org
MrCba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 12h21   #7
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
Bon déjà ça c'est un mauvais problème que le fichier doit exister déjà.

Sinon j'ai essayé ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 //File file1 = new File("C:\\Cabinet\\toto.doc");
        File file1 = new File("C:\\Cabinet\\toto.doc");
        FileInputStream fis1 = new FileInputStream(file1);
 
        //FileInputStream fis = new FileInputStream("C:\\Cabinet\\toto.doc");
 
        HWPFDocument doc = new HWPFDocument(new FileInputStream("C:\\Cabinet\\toto.doc"));
        Range range = doc.getRange();
        CharacterRun run = range.insertAfter("Hello World!!! HAHAHAHAHA I DID IT!!!");
        run.setBold(true);
        run.setItalic(true);
        run.setCapitalized(true);
        OutputStream out = new FileOutputStream("C:\\Cabinet\\toto.doc");
        doc.write(out);
        out.flush();
        out.close();
J'ai l'exception suivante :

Code :
1
2
3
4
5
6
7
8
9
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
        at org.apache.poi.util.LittleEndian.getShort(LittleEndian.java:46)
        at org.apache.poi.hwpf.sprm.SprmOperation.<init>(SprmOperation.java:56)
        at org.apache.poi.hwpf.sprm.SprmIterator.next(SprmIterator.java:47)
        at org.apache.poi.hwpf.sprm.SprmBuffer.findSprm(SprmBuffer.java:57)
        at org.apache.poi.hwpf.sprm.SprmBuffer.updateSprm(SprmBuffer.java:66)
        at org.apache.poi.hwpf.usermodel.CharacterRun.setBold(CharacterRun.java:137)
        at rachid.cabinetMedical.transverse.beans.GenererWord.main(GenererWord.java:34)
Java Result: 1
au niveau de l'instruction C'est bien l'erreur que tu voulais me dire?.
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 13h56   #8
Modérateur
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 16 196
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 16 196
Points : 25 343
Points : 25 343
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
POI est très basique avec les document word. Le problème principal viens surtout de l'aspect fermé de ce format. Le plus simple pour générer des documents de a à z, c'est de les générer dans un format comme ODT. Les versions récentes de msoffice savent le lire sans soucis.

Il existe là pas mal de libraires pour créer ces document (jopendocument, jodreport, ...)
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
"Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973)
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h59   #9
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
Merci tchize pour al réponse.

Mais désolé, j'ai pas bien compris, tu veux dire que génère un document dont l'extension est .odt? ou quelque chose comme ça?.

Peux-tu STP m'expliquer un peu et si t'as un petit exemple je serai vraiment reconnaissant.

Merci d'avance.
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 01h04   #10
Modérateur
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 16 196
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 16 196
Points : 25 343
Points : 25 343
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
oui, quelque chose comme ça.

http://fr.wikipedia.org/wiki/OpenDoc...la_bureautique

Des exemple, y en a plein dans les docs des outils que je t'ai mentionné.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
"Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973)
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 12h33   #11
Membre régulier
 
Inscription : mai 2006
Messages : 285
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 285
Points : 83
Points : 83
Merci beaucoup,

Je vais me plonger dedans
amine1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h30.


 
 
 
 
Partenaires

Hébergement Web