IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Génération de document word en java


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    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.

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    As tu regardé ici :
    http://poi.apache.org/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    J'ai utilisé POI pour des PDF seulement .
    je vais me plonger dedans.

    Merci bcp pour votre indication.

  4. #4
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    Quelques choses comme ceci à priori ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    Merci pour votre réponse.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HWPFDocument doc = new HWPFDocument(new FileInputStream("E:\\Cabinet\\testForPDF\\exemple.doc"));
    Voici l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  6. #6
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    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.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    Bon déjà ça c'est un mauvais problème que le fichier doit exister déjà.

    Sinon j'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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?.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    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, ...)

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    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.

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    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é.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    Merci beaucoup,

    Je vais me plonger dedans

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer des documents Word en Java
    Par Aure7780 dans le forum Documents
    Réponses: 23
    Dernier message: 01/08/2011, 01h19
  2. Modifier le texte d'un document word avec Java
    Par randhalrens dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 0
    Dernier message: 16/09/2009, 15h38
  3. Localiser du texte dans un document word avec java
    Par samorra dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 14/07/2009, 12h56
  4. génération de document WORD,EXCEL,HTML
    Par st20085 dans le forum Documents
    Réponses: 8
    Dernier message: 19/10/2006, 14h32
  5. [POI] Génération de document Word
    Par assomniak dans le forum Documents
    Réponses: 3
    Dernier message: 06/10/2005, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo