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

Langage Java Discussion :

String.replaceAll() et HashTable


Sujet :

Langage Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut String.replaceAll() et HashTable
    Bonjour,

    j'ai besoin pour mon application de créer un fichier word (.doc) après avoir récolté certaines informations qui doivent être insérée dans ce word.
    Après plusieurs heures de recherche sur le net, j'ai trouver un post qui date un peu http://blogs.msdn.com/dotnetinterop/...d-ms-word.aspx. j'ai tester le dans mon programme la méthode ou on utilise le String.replaceAll() et ca marche.

    Mais il y a une partie que je ne comprend pas du tout comment faire :
    From that starting point, I took 2 paths. The first was to just place within that Template document keywords or fields to be replaced programmatically at runtime, with a simple text replacement library. In Java, the java.lang.String class has a replaceAll() method that accepts regular expressions and inserts replacement text. Easy. I just inserted a set of "fields" that look like ##NAME##. These are not MS-Word "fields", just plain old text, within the XML document, of a well-known format. You can use any format you like. $$NAME$$ if you want, or whatever.

    The Java application then populates a Hashtable of name/value pairs, then mechanically replaces all the fields in the doc whose names are present in the Hashtable, with the value of that key. Simple. Find ##FOO## in the doc, and replace that with Hashtable.get("FOO"). The Hashtable can be populated by any means - I inserted the current time of day as one of the name/value pairs, and I also populated the list with data from a SQL query. It could also be populated from a webservices call. Whatever. It's just a Hashtable.

    Si je comprend bien, on peu utiliser un HashTable contenant toutes les info que l'on veut remplacer dans le fichier et dont la clé est la même que ce que l'in a mit dans le word entre ##.
    Mais je ne vois pas du tout comment faire ca en java.
    (Il y a un exemple de mit mais quand j'essaye d'y accéder ca ne marche pas. donc si vous arriver a les avoir ca serait sympas de me les passé.)

    Si vous pouviez m'expliquer comment faire ça, ça serait super.


    D'avance merci.

  2. #2
    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 : 46
    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
    pourquoi ne pas plutot utiliser jooreport pour faire du templating traitement de texte en java?

    http://www.developpez.net/forums/d13...ge-openoffice/

    http://www.developpez.net/forums/d44...ort-sous-java/

    Les dernières version de MsOffice disposant d'un plugin capable de lire l'ODT.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Merci de ta réponse.

    En fait je suis obliger de passer par MS Office Word et pas par OpenOffice. Donc le format odt ne va pas et en plus il me semble avoir lu pendant mes recherche que il faut que openoffice soit installer sur la machine qui va créer le document (ca j'en suis pas sur) ce qui est impossible dans mon cas.

  4. #4
    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 : 46
    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
    non, il ne faut pas openoffice sur la machine, sauf si tu veux faire des conversion de format par la suite (genre ODT-> PDF). jooreport est pur java pour l'ouverture / modification de documents openoffice. Et comme mentionné, il est possible d'ouvrir de l'odt avec microsoft office: via le plugin sun http://www.sun.com/software/star/odf_plugin/index.jsp ou via l'odf converter http://sourceforge.net/projects/odf-converter

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Ah ok, si il n'y a pas besoin de openoffice d'installer je vais y regarder.

    Mais pourrait-on quand même m'expliquer comment utiliser le String.replaceAll() avec un HashTable.


    Merci d'avance

  6. #6
    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 : 46
    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
    je suppose que tu parcoure tous les élément de ta hashtable pour récupérer les paire cle-valeur, et que pour chaque paire tu fait un texte.replaceAll("##"+cle+"##",valeur).

    Note que l'exemple que tu mentionne précise clairement un format xml, donc il utilise le format xml de microsoft, qui nécessite, si je ne me trompe, au moins office 2007.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    ah ok je vais tester avec ca alors.

    heu en fait WordProcessingML est pour word 2003. Il suffit de faire un fichier word et de faire enregistrer sous et là, mettre le format xml. Word sait toujours l'ouvrir mais c'est pas du doc c'est du xml.

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

Discussions similaires

  1. [String] ReplaceAll et ponctuation
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 01/03/2007, 15h01
  2. Probleme String replaceAll
    Par viscere dans le forum Langage
    Réponses: 13
    Dernier message: 03/07/2006, 09h22
  3. [String] [ReplaceAll] comment despecialiser ?
    Par DeeJimy dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 12/08/2005, 16h07
  4. [String][replaceAll][Expression régulière]Remplacement multi
    Par cpr0 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 09/04/2004, 16h40
  5. [regex][string] replaceAll bogué ?
    Par 7eme dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2003, 16h36

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