miércoles, 1 de julio de 2009

C# y Word , introduccion a la interaccion entre ambos.

Con este artículo vamos a empezar una pequeña serie de teoría, paso y ejemplos de cómo coordinar nuestra aplicación con documentos word.

Objetivo:
  • Coordinar nuestra aplicación C# con Word 2003 y 2007.
  • Abrir aplicación la Word y/o documentos de este tipo.
  • Buscar, extraer y/o modificar (texto, fuentes, estilos, etc).
Pasos:

Primero agregar referencias y librerías necesarias
En el VisualStudio: Agregar referencia -> COM -> MicrosoftOffice 11.0 ObjectLibrary

Ahora en el código:

Para agregar librería :
"using word = Microsoft.Office.Interop.Word"
-Esta asignación inicial la hacemos para trabajar cómodamente más adelante.

Para abrir la aplicación Word:
"private Word.Application oWord;"
"this.oWord = new Word.Application();"

Aconsejable tener una variable booleana para controlar si la
aplicación Word se encuentra abierta o no.

"private bool openApp;"

Crear, abrir y añadir a la aplicación el documento Word:

"private Word.Document oWordDoc"
"object oRuta → ruta del documento que queremos abrir."
"private Object oNulo = System.Reflection.Missing.Value"
"oWordDoc = oWord.Documents.Add(ref oRuta, ref oNulo, ref oNulo, ref oNulo)"

En lugar del método Add(...), se puede usar Open(...), que tiene más opciones, cómo abrir sólo para lectura.

3 comentarios:

  1. Hola,
    Si lo esto ya lo consigo ahora lo que quiero es un doc. de word que cre con 8 marcadores me sirva de plantilla para mi proyecto c# y quiero hacer una copia a esta plantilla con el nombre que yo quiera y actulizar los marcadores con la informcion de mis varibles

    ResponderEliminar
  2. He obrado con una infinidad ms word documentos. Pero he casualmente chocado con - reparar .doc. El programa asombra gran cantidad las possibilidades. Por ejemplo el resurso ha restituido a mis ficheros corrompidos. Además el instrumento puede resolver este problema eficazmente y recuperar archivos doc dañados.

    ResponderEliminar
  3. oye como hago para solo abrirlo en un textbox y no dejar que lo modifiquen

    ResponderEliminar