L'automation Word
Tutorial de: Benjamin Naxos
Sources: Livre ".net" par Dick Lantim
1. Introduction
L'automation Word consiste à utiliser les services du logiciel Word dans une application.
Ce petit tutorial 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)
2. 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 placer 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.
3. Référencement de l'assemblage
Pour utiliser les classes il vous faut référencer les assemblages.
- Sous SharpDevelop, faites un click 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".
4. 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.