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 :

automation de Word par c#


Sujet :

Windows Forms

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut automation de Word par c#
    Bonjour

    je developpe un programme en c# qui utilise Word.
    j'ai besoin d'utiliser :
    using Microsoft.Office.Tools.Word;
    mais à la compil il me dit qu'une référence d'assembly est manquante
    voilà mon problème :
    je n'arrive pas à trouver cette référence
    est-ce une dll, et si oui laquelle ?
    ou un composant ?

    merci pour vos réponses
    thomas

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Bonjour,

    Dans la barre des menus clique sur Projet -> Ajouter une référence... -> Microsoft.Office.Interop.Word

    Je suis pas sur que ce soit cette dll la par contre.

  3. #3
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    On trouve ce namespace dans l'assembly du même nom. Cet assembly fait partie des Visual Studio Tools for Office.

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Cette bibliothèque est issue des Visual Studio Tools for Office (VSTO).
    Pour plus d'informations, je te renvoie à l'article de Thomas Lebrun sur les VSTO : Visual Studio 2005 Tools for Microsoft Office: L'automation Office en .NET

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Merci pour vos réponses
    j'ai déja le
    using Microsoft.Office.Interop.Word
    et il fonctionne
    de plus j'ai déja installé le vsto
    j'ai importé dans mon projet les dll qu'il contient mais rien ne change.
    dans mon

    using Microsoft.Office.Tools.Word
    c'est sur le tools que le compilateur n'est pas d'accord
    y-a-t'il une manip particulière à faire
    je suis bloqué
    merci
    thomas

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as bien créer un projet de type VSTO ? Tu as quelle version ?

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    oui je crois ...
    j'ai la version visual studio 2005 et le framework 2.0
    j'ai créé un projet .sln
    toute la partie Microsoft.Office.Interop.Word fonctionne parfaitement
    la partie Microsoft.Vbe.Interop.Forms pour travailler avec les macros fonctionne très bien aussi
    mais pour accéder aux propriétés des objets Word, la partie Microsoft.Office.Tools.Word ne fonctionne pas
    merci
    thomas

  8. #8
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    je rectifie
    je ne pense pas que mon projet soit un vsto
    voici le détail de mon application :
    j'ai placé un contrôle WinWordControl sur mon form dans lequel je charge l'interface word
    a côté, j'ai créé une boite à outils avec des boutons qui me permettent d'insérer des textbox, des boutons, ... et je voudrais pouvoir accéder aux propriétés (notamment caption ou text et name) des objets que j'insert dans mon .doc afin entre autre de pouvoir les repérer et travailler dessus.
    merci
    thomas

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par toma8175 Voir le message
    j'ai placé un contrôle WinWordControl
    C'est quoi ce contrôle ? Je connais pas

  10. #10
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    il permet d'insérer l'interface Word dans une appli C#
    et par code, on associe le .doc qui est à l'intérieur à un .doc ouvert par automation ce qui permet de faire toutes les opérations sur le doc
    exemple du code :

    public Word.Document monDoc;
    public Word.Application appli;
    MonWinWordControl.LoadDocument("c:\doc1.doc");
    MonWinWordControl.RestoreWord(); (permet de conserver les barres d'outils dans notre appli)
    monDoc = MonWinWordControl.document; (on associe le document qui est ouvert dans le WinWordControl à monDoc et du coup l'interface Word est incluse dans l'appli et plus à l'extérieur comme d'habitude)
    appli = wd.Application;
    et donc l'automation fonctionne très bien

    thomas

  11. #11
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu l'as trouvé où ce contrôle ? Sur internet ? Ta société l'a acheté ?

    Sinon, pour ton pb initial, je pense que c'est parce que tu as une référence manquante....

  12. #12
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    oui je l'ai trouvé sur internet
    si tu veux, je peux t'envoyer la dll
    si tu as un décompilateur c#, tu pourra voir ce qu'il y a dedans
    sinon, oui, je pense aussi qu'il me manque une référence
    mais laquelle ?
    merci
    thomas

  13. #13
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Bonjour,

    il semblerai que mon problème vienne du type des objets Word.
    Les objets Word sont de type System.__ComObject et ne sont pas "castables" en objets dotnet.

    Message d'erreur :

    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type de classe 'System.Windows.Forms.TextBox'. Les instances de types qui représentent des composants COM ne peuvent pas être castées en types différents représentant des composants COM ; toutefois, elles peuvent être castées en interfaces tant que le composant COM sous-jacent prend en charge les appels QueryInterface pour l'IID de l'interface.

    Quelqu'un aurait-il une petite idée ?
    Merci
    Thomas

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/01/2015, 00h41
  2. Réponses: 11
    Dernier message: 26/04/2005, 09h23
  3. Réponses: 3
    Dernier message: 17/02/2005, 08h37
  4. Envoi de fax en format Word par Access
    Par antigone21 dans le forum Access
    Réponses: 4
    Dernier message: 19/09/2003, 19h10
  5. [AUTOMATION WORD]Pilotage Word par Delphi
    Par Sunny dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 05/12/2002, 17h09

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