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

Windows Forms Discussion :

Comment affecter des valeurs à un document word?


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut Comment affecter des valeurs à un document word?
    Bonjour;

    je souhaite développer une petite appli dotNet (WinForm) me permettant de sortir des données d'une base vers un document word et j'ai besoin de vos lumières.

    l'idée serait de définir dans un document word des variables et de venir depuis l'appli dotnet affecter des valeurs à ces variable (ou champs)..ces valeur serait issu de la base (mais c'est pas très important ici de savoir leur provenance.

    Pour faire concis comment affecter directement depuis mon appli dotnet des valeur à des variable ou des champs se trouvant dans mon document word?

    merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    en fait, tu veux faire du publipostage ou du mailing

    Pour piloter word, tu peux faire de l'interop ou des VSTO.. (regardes sur le net)

    Sinon, Tu peux aussi envisager de faire cela dans du code VBA sous Word

    The Monz, Toulouse

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    s
    Sinon, Tu peux aussi envisager de faire cela dans du code VBA sous Word
    Attention à un point : je ne pense pas que ce soit une bonne idée de démarrer des développements en VBA. Il semble que Microsoft va arrêter de supporter VBA à partir de 2009. Donc, ok pour l'existant, mais démarrer des composants en VBA actuellement me semble un choix discutable.

  4. #4
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    c'est pas vraiment du publipostage dans le sens ou je ne veux pas ouvrir de communication entre ma base et mon document Word. je veux récupérer les valeur des champs de la base avec mon appli Dot Net et ensuite c'est mon appli qui devra se charger d'affecter les valeurs aux différents champs du document word.

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    oui , je comprends un peu ta problématique car dans ma société , nous avons
    developpé quelque chose d'assez voisin

    En l'occurence, l'utilisateur crée un document word avec des "tags" et ensuite,
    nous avons un moteur qui recuperer des infos venant de bd ou de fichier pour faire la substitution... Le moteur s'appuie sur l'interop pour piloter word et faire le boulot

    En dehors d'une telle solution, je n'en connais pas d'autres

    (à part de developper un Add-in... )

    The Monz, toulouse

  6. #6
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    je suis à la recherche d'info sur le net concernant l'interop...
    il te reste un exemple simple d'utilisation de l'interop?
    moi j'ai ça pour l'instant:
    http://jab.developpez.com/tutoriels/dotnet/word/

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    non, j'ai pas cela sous la main mais avec google , tu vas trouver ca en 3 minutes
    en C#

    Et meme mieux, tu as un exemple ici sur le site
    (dans les tutoriaux, si ma mémoire est bonne)

    The Monz, Toulouse

  8. #8
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    après lecture rapide je pense que ça devrait aller avec ça:
    http://jab.developpez.com/tutoriels/dotnet/word/

    merci beaucoup

  9. #9
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    j'ai essayé le code suivant en m'inspirant de l'exemple
    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
               //nom du fichier word à modifier
                object fileName = @"C:\doc.doc";
                
                // connexion à Word
                Word.Application msWord = new Word.Application();
                msWord.Visible = false; 
                object missing = System.Reflection.Missing.Value;
                
              
                Word.Document nvDoc ;
                
    
            	// ouvrir le document existant
    	nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
                
                // Les champs de formulaire définis dans le modèle se nomment "Nom" et "Prenom".
                object field = "nom";
                nvDoc.FormFields.Item(ref field).Result = "Mon nom";
    
                // Fermeture de word
                msWord.Quit(ref missing, ref missing, ref missing);
    et ça plante " Le membre de la collection requis n'existe pas"
    vois tu la cause de se plantage j'utilise word 2003.

  10. #10
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    pour moi, tu essayes d'acceder à quelque chose qui à l'air de ne pas exister dans le document word que tu as ouverts

    Un peu genre, si tu voulais lire un element d'une liste, et que cette liste, faute d'element n'a meme pas été instancié...

    C'est l'impression que j'en ai

    The Monz, Toulouse

  11. #11
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    ben oui j'ai pensé à ça mais j'ai bien le champs {nom} (Ctrl+F9 sous word).
    la différence de mon code par rapport à l'exemple c'est le GetItem(ref...), moi je fais un Item(ref...) car j'ai pas le get item

  12. #12
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    attention

    Tu n'as pas le GetItem (à l'intellisense ou à la compilation ? )

    je te pose la question, car parfois, des méthodes ne sont pas affichées par l'intellisense alors qu'elles existent vraiment (un bug surement )...

    Donc, essaye de compiler avec le Getitem (attention à la casse majuscule)

    The Monz, Toulouse

  13. #13
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    non non à la compil

  14. #14
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    alors , là pas trop d'idée

    Tu peux toujours essayer au debuggueur de voir ce que tu arrives à trouver
    dans ton objet COM word.. pour essayer de voir ce qui deconne avant l'appel

    Un bon coup de debuggueur avec les bons types devant les objets COM devraient pouvoir t'aider

    Désolé, mais je suis à cours d'idée (surtout que ca fait quelques temps que j'ai plus trop fait d'interop Word... beurk.. )

    The Monz, Toulouse

  15. #15
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    ça vient quand même pas de la manière dont j'ai inséré mon champs dans word {nom} (CTRL+F9)?

  16. #16
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    je ne sais pas

    peut-etre....

    Sinon, essayes d'inserer un champ avec l'interop et voit si ensuite ca fonctionne

    The Monz, Toulouse

  17. #17
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    pour ne plus avoir ce soucis il ne faut pas mettre des champs dans le document word mais des signets....

  18. #18
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    j'y ai pensé le problème c'est que je ne sais pas comment ajouter un champs depuis l'interop..

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/10/2006, 17h52
  2. Réponses: 2
    Dernier message: 17/05/2006, 21h35
  3. [DisplayTag] Comment affecter des données dans la table ?
    Par MAJIK_ENIS dans le forum Taglibs
    Réponses: 7
    Dernier message: 04/04/2006, 15h27
  4. comment afficher des données Access sur Word ??
    Par merlubreizh dans le forum Access
    Réponses: 7
    Dernier message: 16/09/2005, 15h07
  5. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15

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