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

Documents Java Discussion :

Comment retrouver les champs MERGEFIELD dans un document .docx


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Par défaut Comment retrouver les champs MERGEFIELD dans un document .docx
    Bonjour à tous,

    je lis un document .docx en utilisant le librairie poi, jusque là, je n'ai pas de problème.

    Y-a t-il une solution pour extraire les champs de type MERGEFIELD dans ce document (genre, un getX sur le bon objet et hop ! ) ? ou, faut-il lire, chaque ligne du document sous forme de xml afin de faire de la manipulation de chaînes ?

    d'avance merci.
    Franck.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Par défaut
    Bonjour à tous,

    personne n'a d'idées ?

    Merci.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Par défaut
    J'ai bien réussi à parcourir l'ensemble de mon fichier, en extraire le contenu en utilisant l'objet XWPFWordExtractor, mais je n'arrive pas à retrouver les champs MERGEFIELD.

    Quelqu'un n'uarait pas une idée ?

    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Par défaut
    bon, j'ai enfin trouvé une solution à mon problème. Solution par forcément trés belle, mais bon, ça marche. Ne trouvant pas de méthode getXXX me donnant ce que je voulais (Liste des champs MergeField) (c'est peut être possible avec une autre APIs que poi ?!), j'ai converti le xml récupéré en chaine de caractères et je boucle sur tout le xml pour trouver ce que je cherche :

    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
    17
    18
    19
    20
    21
    22
    23
    24
     
    // XWPF format  (Word2007)
    // filename étant la variable qui contient le nom du chemin+fichier à traiter
    XWPFDocument documentXml = new XWPFDocument(new FileInputStream(filename));
    // Récupération du document
    CTDocument1 doc = documentXml.getDocument();
    // Conversion du XML en String
    String s1 = doc.xmlText();
     
    String mergefield;
    int pos=-1, posfin=-1;
    // Parcours du texte pour retrouver tous les champs MERGEFIELD
    while ((pos = s1.indexOf("MERGEFIELD")) != -1)
    {
        // Récupération des champs mergefied
        s1 = s1.substring(pos+10, s1.length());
        // Suppression des blancs à gauche
        // J'utilise une méthode que j'ai écrite dans un une classe Utilities
        s1 = Utilities.lTrim(s1);
        // Position de fin du champ MERGEFIELD
        posfin  = s1.indexOf(" ");
        // Récupération du champ MERGEFIELD
        mergefield = s1.substring(0, posfin);
    }
    si ça peut aider quelqu'un.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/06/2007, 13h33
  2. Comment déterminer les champs modifiés dans une base
    Par Casual dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2007, 08h33
  3. Réponses: 3
    Dernier message: 26/02/2007, 10h14
  4. Réponses: 5
    Dernier message: 03/11/2006, 18h38
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

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