Bonsoir à tous,
J'ai un document Word dans lequel j'ai créé un champ "Author" de type Texte qui est renseigné à "MyAuthor" dans le fichier Essai_01.docx.
Depuis C#, j'arrive à ouvrir le fichier mais je n'arrive pas à récupérer ce champ "Author".
J'ai cherché plusieurs fois sur Google des exemples ou regarder l'aide MSDN mais cela sans succès.
Je suis sous Visual Studio 2017, voici mon code:
Code :
- using System;
- using System.IO;
- using System.Reflection;
- using nmOfficeCore = Microsoft.Office.Core;
- using nmOfficeWord = Microsoft.Office.Interop.Word;
- using nmOfficeWDoc = Microsoft.Office.Interop.Word.Document;
- using nmDatGrdVwRow = System.Windows.Forms.DataGridViewRow;
- namespace MyNmClass1
- {
- class MyClass1
- {
- private string _MyAuthor;
-
- public void GetParams()
- {
- object oMissing = Missing.Value;
- string ThisAuthor;
- // Object Instantiation & Variables
- nmOfficeWord.Application MyWrdAppli = new nmOfficeWord.Application { Visible = true };
- nmOfficeWDoc MyWrdDoc = new nmOfficeWord.Document();
- Microsoft.Office.Core.DocumentProperties MyWrdCustProp = (Microsoft.Office.Core.DocumentProperties) MyWrdDoc.CustomDocumentProperties;
- // Open the file
- MyWrdAppli.Documents.Open(@"C:\Essai_01.docx", ReadOnly: true);
- // Get all the User Custom Params
- this._MyAuthor = MyWrdCustProp["Author"].Value;
- // Close the Reading Sheet
- MyWrdDoc.Close();
- MyWrdAppli.Quit();
- }
- }
- }
|
Je prends l'erreur suivante lors de l'execution:
System.Runtime.InteropServices.COMException : 'L’appel a été rejeté par l’appelé. (Exception de HRESULT : 0x80010001 (RPC_E_CALL_REJECTED))'
En regardant sur les forums, il est dit qu'il faut remplacer:
Code :
- Microsoft.Office.Core.DocumentProperties MyWrdCustProp = (Microsoft.Office.Core.DocumentProperties) MyWrdDoc.CustomDocumentProperties;
|
par
Code :
- object MyWrdCustProp = (Microsoft.Office.Core.DocumentProperties) MyWrdDoc.CustomDocumentProperties;;
|
Ce qui provoque le message de compilation suivant:
Erreur CS0021 Impossible d'appliquer l'indexation à l'aide de [] à une expression de type 'object'
Pouvez-vous svp me dire quel est mon erreur et pourquoi le compilo hurle ?
Merci d'avance pour votre aide.
Message édité par sined40 le 03-10-2017 à 00:21:02