2010-10-28 8 views
5

Chaque semaine, je produis un document Word avec des copies, des tableaux et des graphiques provenant de diverses sources sur notre réseau.Créer un document Word 2010 par programme

Cela peut prendre un peu de temps et parfois je fais des erreurs ou j'oublie des choses qui devraient entrer. Je veux automatiser ce processus autant que possible. Donc, fondamentalement, je veux faire un modèle Word ou une application console qui, quand je l'ouvre/l'exécute, se déclenche et recueille toutes ces choses et les relie dans les différentes parties du document.

Supposons que je dois insérer:

  • Certaines copie d'un autre document Word
  • PNG (graphique)
  • Créer une table à partir d'un fichier CSV
  • une norme en-tête et pied de page avec la numérotation des pages

Je fais généralement quelques modifications à la copie dans le document pour mettre en surbrillance la surbrillance de la semaine.

Ensuite, je le vérifie dans un SharePoint où les utilisateurs du réseau peuvent l'ouvrir et l'afficher.

Je pense que la chose à faire est de casser le VS2010 et de créer un projet de modèle Word. Je n'ai jamais fait cela avant et je me demandais quels sont les pièges ou si c'est même une façon appropriée de résoudre mon problème.

Mon autre option serait un power-shell mais je ne suis pas expert non plus.

Je serais plutôt à l'aise pour écrire des applications de console, donc je pourrais finir par le faire de cette façon.

Aide/Conseil apprécié.

Répondre

4

Je voudrais aborder ce problème en décomposant les étapes individuelles comme vous le feriez si vous étiez assis devant un document Word vide. Puis automatisez-le en utilisant le modèle objet. Il y a un peu de courbe d'apprentissage, mais une fois que vous aurez passé, vous serez accro à l'automatisation d'Office. Office est une plate-forme assez puissante. La plupart de ce que vous pouvez réaliser via l'interface utilisateur peut être fait par programme. Je fais pas mal d'automatisation avec Excel. Le code est assez intuitif ... ses choses comme worksheet.Range ["A1"] = "abcd" (définition de la cellule A1 = "abcd").

voici quelques conseils:

http://support.microsoft.com/kb/316383

http://msdn.microsoft.com/en-us/library/ee861527.aspx

Si vous passez par le tutoriel dans le premier lien, vous obtiendrez l'essentiel. Ce qui est génial, c'est que vous pouvez utiliser le débogueur pour parcourir vos lignes de code. Lorsque chaque ligne s'exécute, vous pouvez voir les résultats sur le document Word. Je n'ai jamais utilisé un projet de modèle Word, donc je ne peux pas parler pour le pour et le contre. En suivant la route du modèle objet, il vous suffit d'articuler ce que vous voulez faire, de le décomposer en étapes individuelles comme vous le feriez, puis de le coder. Si vous êtes coincé, il est probable que quelqu'un d'autre a blogué/posté sur la façon de faire quelque chose. Google va trouver une solution très rapidement. Bonne chance!

0

Vous avez beaucoup d'options:

  • automatisez Word
  • faire comme une macro (DOTM)
  • créer votre document en utilisant Open XML SDK
  • VSTO

Vous Il est probablement préférable de le faire en utilisant une macro en premier, bien que ce soit le vieux VB6. Les techniques que vous apprenez rapidement se traduisent assez bien dans les autres approches. Open XML SDK a le mérite de ne pas avoir besoin de Word pour créer le document.

Questions connexes