Comment faire pour utiliser Automation pour obtenir et définir les propriétés de documents Office à l'aide de Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 303296 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F303296
Agrandir tout | Réduire tout

Résumé

Cet article décrit comment créer un client Automation Microsoft Visual C# .NET qui manipule les propriétés d'un document Microsoft Word. Bien que l'exemple de code soit spécifique à Word, les mêmes techniques peuvent être appliquées pour l'automatisation de Microsoft Excel et Microsoft PowerPoint.

Plus d'informations

Création d'un client Automation pour Microsoft Word

  1. Démarrez Visual Studio .NET.
  2. Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet. Sélectionnez Application Windows dans les types de projets Visual C#. Form1 est créé par défaut.
  3. Ajoutez une référence à la Bibliothèque d'objets Microsoft Word. Pour cela, procédez comme suit :
    1. Dans le menu Projet, cliquez sur Ajouter une référence.
    2. Sous l'onglet COM, recherchez Bibliothèque d'objets Microsoft Word, puis cliquez sur Sélectionner.

      Remarque Microsoft Office 2003 inclut des assemblys PIA (Primary Interop Assemblies). Microsoft Office XP n'inclut pas d'assemblys PIA, mais ils peuvent être téléchargés. Pour plus d'informations sur les assemblys PIA Office XP, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
      328912INFO : Assemblys PIA Microsoft Office XP disponibles pour téléchargement
    3. Cliquez sur OK dans la boîte de dialogue Ajouter une référence pour accepter vos sélections. Si vous êtes invité à générer des wrappers pour les bibliothèques que vous avez sélectionnées, cliquez sur Oui.
  4. Dans le menu Affichage, sélectionnez Boîte à outils pour afficher la boîte à outils, puis ajoutez un bouton à Form1.
  5. Double-cliquez sur Button1. La fenêtre de code du formulaire s'affiche.
  6. Dans la fenêtre de code, remplacez le code suivant
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    par :
    private void button1_Click(object sender, System.EventArgs e)
    {
       Word.Application oWord;
       Word._Document oDoc;
       object oMissing = Missing.Value;
       object oDocBuiltInProps;
       object oDocCustomProps;
    			
       //Create an instance of Microsoft Word and make it visible.
       oWord = new Word.Application();
       oWord.Visible = true;
    
       //Create a new Document and get the BuiltInDocumentProperties collection.
       oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, 
                                  ref oMissing);
       oDocBuiltInProps = oDoc.BuiltInDocumentProperties;
       Type typeDocBuiltInProps = oDocBuiltInProps.GetType();
    
       //Get the Author property and display it.
       string strIndex = "Author";
       string strValue;
       object oDocAuthorProp = typeDocBuiltInProps.InvokeMember("Item", 
                                  BindingFlags.Default | 
                                  BindingFlags.GetProperty, 
                                  null,oDocBuiltInProps, 
                                  new object[] {strIndex} );
       Type typeDocAuthorProp = oDocAuthorProp.GetType();
       strValue = typeDocAuthorProp.InvokeMember("Value", 
                                  BindingFlags.Default |
                                  BindingFlags.GetProperty,
                                  null,oDocAuthorProp,
                                  new object[] {} ).ToString();
       MessageBox.Show( "The Author is: " + strValue,"Author" );
    
       //Set the Subject property.
       strIndex = "Subject";
       strValue = "The Subject";
       typeDocAuthorProp.InvokeMember("Item", 
                                  BindingFlags.Default | 
                                  BindingFlags.SetProperty, 
                                  null,oDocBuiltInProps, 
                                  new object[] {strIndex,strValue} );
    			
       //Add a property/value pair to the CustomDocumentProperties collection.
       oDocCustomProps = oDoc.CustomDocumentProperties;
       Type typeDocCustomProps = oDocCustomProps.GetType();
    
       strIndex = "Knowledge Base Article";
       strValue = "Q303296";
       object[] oArgs = {strIndex,false,
                         MsoDocProperties.msoPropertyTypeString,
                         strValue};
    
       typeDocCustomProps.InvokeMember("Add",BindingFlags.Default | 
                                  BindingFlags.InvokeMethod, null, 
                                  oDocCustomProps, oArgs );
    
       MessageBox.Show("Select \"Properties\" from the File menu "
            + "to view the changes.\nSelect the Summary tab to view "
            + "the Subject property and the Custom tab to view the Knowledge"   
            + "Base Article property.", "Check File Properties",
            MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    					
  7. Faites défiler la page jusqu'en haut de la fenêtre de code, puis ajoutez les lignes suivantes à la fin de la liste de directives using :
    using Microsoft.Office.Core;
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. Appuyez sur F5 pour exécuter l'application.
Remarque Les interfaces DocumentProperties et DocumentProperty sont des interfaces à liaison tardive. Pour les utiliser, vous devez les traiter comme des interfaces IDispatch.

Références

Pour plus d'informations, reportez-vous au site Web MSDN (Microsoft Developer Network) à l'adresse suivante (en anglais) :
Microsoft Office Development with Visual Studio (Développement de Microsoft Office avec Visual Studio)
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
303294Comment faire pour utiliser Automation pour obtenir et définir les propriétés de documents Office à l'aide de Visual Basic .NET

Propriétés

Numéro d'article: 303296 - Dernière mise à jour: mercredi 17 janvier 2007 - Version: 6.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# .NET 2002 Initiation
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
Mots-clés : 
kbpia kbautomation kbhowto KB303296
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com