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 :

Doublon apache POI


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 4
    Par défaut Doublon apache POI
    Bonjour à tous,

    Voilà cela fait plusieurs jours que j'ai un soucis l'API Apache POI.

    J'arrive à remplacer les "brackets" par des données mais avec ce code je ne supprime pas les "brackets".

    Code Java : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public class ExtractWord {
     
    	private XWPFWordExtractor ext;
     
    	public ExtractWord() {}
     
    	public void ExtractTest() throws JsonParseException, JsonMappingException, ClassNotFoundException, SQLException, IOException {
    		//Absence abse = new Absence();
    		DAOUtilisateur usager = new DAOUtilisateur();
    		ArrayList<Utilisateur> listeUtilisateur = usager.GetUtilisateurByAbsence();
     
    		int i = 0;
     
    		for (Utilisateur user : listeUtilisateur) {
    			System.out.println(user.nom);							
     
    			InputStream inp = new FileInputStream("FichierWord.docx");
    			XWPFDocument document = new XWPFDocument(inp);	
    			ext = new XWPFWordExtractor(document);			
    			for (XWPFParagraph p : document.getParagraphs())
    			{
    				List<XWPFRun> runs = p.getRuns();
    				if (runs != null) {				 
    					String text = ext.getText();
    					for (XWPFRun r : runs) {
    						if (text != null && text.contains("{{utilisateur.nom}}")) {
    							text = text.replace("{{utilisateur.nom}}",user.nom);
    						}	
    						if (text != null && text.contains("{{utilisateur.prenom}}")) {
    							text = text.replace("{{utilisateur.prenom}}", user.nom);
    							r.setText(text, 0);
    							i++;
    							System.out.println(ext.getText());							
    						}
    					}
    				}
    			}		
    			document.write(new FileOutputStream("FichierWord"+ i +".docx"));
    		}
    	}
    }


    Excusez moi si je ne suis pas assez clair mais je n'ai pas trop d'expérience dans le métier de développeur. Je suis en stage de fin de formation et je suis seul à travailler comme développeur.

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par maxand01 Voir le message
    Bonjour à tous,

    Voilà cela fait plusieurs jours que j'ai un soucis l'API Apache POI.

    J'arrive à remplacer les "brackets" par des données mais avec ce code je ne supprime pas les "brackets".

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
                        String text = ext.getText();
                        for (XWPFRun r : runs) {
                            if (text != null && text.contains("{{utilisateur.nom}}")) {
                                text = text.replace("{{utilisateur.nom}}",user.nom);
                            }    
                            if (text != null && text.contains("{{utilisateur.prenom}}")) {
                                text = text.replace("{{utilisateur.prenom}}", user.nom);
                                r.setText(text, 0);
                                i++;
                                System.out.println(ext.getText());                            
                            }
                        }
    Bonjour,

    Si la modification du texte n'est prise en compte que par le r.setText(), effectivement ça ne marchera pas.
    Dans le premier bloc "if", le contenu de "text" est purgé des textes entre accolades. Le second test ne trouvera pas d'accolades, et le second bloc ne sera jamais exécuté.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 4
    Par défaut
    Bah en faite en résultat il me remplace bien ce que je veux mais c'est juste qu'il ne m'efface pas ce que normalement je remplace.

    Au départ, j'ai ca :

    L’utilisateur {{utilisateur.nom}} {{utilisateur.prenom}}

    Et en résultat ca :

    L’utilisateur Willis Willis

    {{utilisateur.nom}} {{utilisateur.prenom}}


    Carrey
    L’utilisateur Carrey Carrey

    {{utilisateur.nom}} {{utilisateur.prenom}}

    Donc c'est {{utilisateur.nom}} {{utilisateur.prenom}} que je n'arrive pas à supprimer

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Un autre souci c'est que Tu as utiliser Nom 2 fois et jamais Prenom, pour le reste, aucunes idées.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 4
    Par défaut
    Oui merci j'ai vu, je fais juste des petits test pour intégrer au projet donc c'est "normal"

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ça passe à la compile ? Normalement, la fonction replace() attend un char ou CharSequence... là, tu as du String.
    Du coup, il faudrait utiliser replaceAll().
    Ensuite, si je peux me permettre, tu devrais faire simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    text = text.replaceAll("{{utilisateur.nom}}", user.nom);
    text = rext.replaceAll("{{utilisateur.prenom}}", user.prenom);
    r.setText(text, 0);
    Pas la peine de tester si elle contient avant, soit il y en a et c'est remplacé, soit il n'y en a pas et ça ne fait rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Apache POI - HWPF création de document word basé sur template
    Par *alexandre* dans le forum Documents
    Réponses: 8
    Dernier message: 26/02/2010, 11h03
  2. problème création rapport excel avec apache poi
    Par jakcam dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 07/10/2009, 14h07
  3. Réponses: 1
    Dernier message: 22/06/2009, 14h26
  4. Apache POI représenter une arborescence sur un slide
    Par elvis54 dans le forum Général Java
    Réponses: 0
    Dernier message: 02/06/2009, 09h04
  5. Réponses: 0
    Dernier message: 27/10/2008, 14h58

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