[c#] automation avec word

L'automation Word

Tutoriel de : Benjamin Naxos
Sources : Livre ".net" par Dick Lantim

Introduction

L'automation Word consiste à utiliser les services du logiciel Word dans une application.

Ce petit tutoriel explique les étapes à franchir pour pouvoir ouvrir Word, créer une nouvelle feuille et la remplir par le biais d'une application réalisée en c# avec SharpDevelop.

(A ma connaissance tout ce qui fonctionne sous SharpDevelop est à priori susceptible de fonctionner sous Visual c# .net)

Importation de la TLB de Word

La première étape consiste à générer l'assemblage Word.dll qui contiendra les classes proxy utiles au contrôle de Word par automation.

Vérifiez que vous possédez le fichier MSWORD.OLB situé dans:

C:\Program Files\Microsoft Office\Office10\

Utilisez l'outil "tlbimp.exe" fourni dans le SDK .net de la façon suivante :

  • Lancez une invite de commande.
  • Tapez "tlbimp C:\Program Files\Microsoft Office\Office10\ MSWORD.OLB"

(Pour taper cette commande placez vous dans le répertoire où se situe l'outil "tlbimp.exe" : C:\Program Files\Microsoft .net\SDK\v1.1\Bin\)

Le répertoire Bin doit maintenant contenir 3 fichiers .dll en plus :

  • Word.dll
  • Office.dll
  • VBIDE.dll

Il vous suffit de copier-coller ces 3 fichiers dans le répertoire du projet que vous développez.

Référencement de l'assemblage

Pour utiliser les classes il vous faut référencer les assemblages.

  • Sous SharpDevelop, faites un clic droit sur le dossier "Références" situé dans l'arborescence du projet puis sélectionnez "Ajouter une référence".
  • Choisissez "Browser d'assemblies .net" puis cliquez sur "parcourir".
  • Ajoutez ainsi les 3 dll précédemment extraites et confirmez avec "ok".

Utilisation de base des classes

Pour ouvrir Word tapez les lignes suivantes dans l'évènement click d'un bouton par exemple:

/* Lancement du processus Word grâce à l'instanciation de la classe "ApplicationClass" */
Word.ApplicationClass wa = new Word.ApplicationClass();

/* Montrer la fenêtre du processus */
wa.Visible=true;

Pour créer un nouveau document en y ajoutant du texte:

/* Création de la feuille */
Word.DocumentClass wd = new Word.DocumentClass();

/* Activation de la feuille */
wd.Activate();

/* Insertion de texte dans la feuille */
wd.Content.InsertAfter("Salut");

Toutes les fonctions de Word sont disponibles avec un peu de recherche dans les différentes classes.

Ce code a été testé avec Word XP, le SDK v1.1 et SharpDevelop RC3.

Ce document intitulé « [c#] automation avec word » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous