begin process at 2012 02 11 09:57:59
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > [C#] AUTOMATION AVEC WORD

[C#] AUTOMATION AVEC WORD


 Information sur le tutoriel

Note :
8 / 10 - par 5 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Tutorial

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.

 

 

Commentaires

Commentaire de alncool le 22/06/2005 18:02:30

Franchement qu'une chose à dire :
Simple... rapide et très fonctionnel!
Je ne peux pas en dire autant de plusieurs autres sources et tutoriels sur le sujet...

Vraiment merci tu m'enlève une épine du pied ;)

Cependant si tu pourrais me dire si tu le sais quel est la fonction pour ajouter un champ de texte et une case à cocher sa serai le comble. En attendant je cherche ^^

Commentaire de alncool le 04/07/2005 17:09:15

C'est bon j'ai trouvé pour les champ et les cases à cocher ... cependant impossible de trouver comment récuperer le Range du curseur. En fait je voudrai générer un champ automatisé à l'endroit du curseur donc si quelqu'un a une idée...

PS si quelqu'un veut savoir comment j'ai fait, qu'il m'envoie un message privé ;)

Commentaire de Skwipy le 12/04/2006 04:57:55

C'est quoi qu'on fait quand on a pas le fichier .OBL????

merci

Commentaire de reghasnaa le 15/09/2006 16:56:36

bonjour

comment je peux résourdre ce problème :
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Accès refusé.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.UnauthorizedAccessException: Accès refusé.

ASP.NET n'est pas autorisé à accéder à la ressource demandée. Accordez des droits d'accès à la ressource pour l'identité de la demande ASP.NET. ASP.NET a une identité de processus de base (en règle générale {MACHINE}\ASPNET sur IIS 5 ou Network Service sur IIS 6) qui est utilisée si l'application n'emprunte pas d'identité. Si l'application emprunte une identité via <identity impersonate="true"/>, l'identité sera l'utilisateur anonyme (en règle générale IUSR_MACHINENAME) ou l'utilisateur de la demande authentifié.

Pour accorder un accès en écriture ASP.NET à un fichier, cliquez avec le bouton droit sur le fichier dans l'Explorateur, choisissez "Propriétés" et sélectionnez l'onglet Sécurité. Cliquez sur "Ajouter" pour ajouter l'utilisateur ou le groupe approprié. Sélectionnez le compte ASP.NET et activez les cases à cocher pour l'accès souhaité.

Erreur source:


Ligne 34 :
Ligne 35 :         Dim objWord As Word.ApplicationClass
Ligne 36 :         objWord = New Word.ApplicationClass

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Commentaire de gailenepsx le 25/07/2007 13:21:30

J'ai un problème avec le pilotage de MS Word en csharp.
Je cherche comment renvoyer la retour à la ligne à MS Word, j'ai essayer \n mais ça marche pas.
Svp si vous connaissez une solution!
Je vous attend.

Commentaire de slmnsnts le 14/08/2007 09:29:22

salut,

pour le retour à la ligne c'est :
...
Word.Paragraph oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
>>> oPara1.Range.InsertBreak();

pour les tableaux et le reste sur http://support.microsoft.com/kb/316384

Commentaire de Dedech le 29/10/2007 12:36:32

J'ai un problème!!! help, je remplis des signets depuis une page asp. Cependant, lorsque la longueur de la chaine de caractere est supérieure a 255, l'export n'est pas possible (probleme avec Word).
Pr info, nécessité de mettre toute la chaine de caractere dans le même signet.
Comment puis je contourner ce problème???

Commentaire de dadamagouil le 11/12/2007 07:57:40

Je me demandais aussi comment on fais si on a pas les fichiers décrit plus haut ?

Commentaire de ultima93 le 14/12/2007 17:27:37

Si tu n'as pas les fichiers, tu ne pourras pas piloter Word.
De plus tu est obligé d'installer Word sur le serveur car le processus WinWord.exe est lancé à chaque appel de word.

J'ai cherché une solution pour utiliser Word via les dll et base de registre sans l'installer mais sans succes.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales