Este documento describe cómo automatizar Microsoft Word usando código. Explica que las aplicaciones de Office como Word tienen librerías que permiten acceder y manipular sus objetos como si fueran objetos de programación. Esto permite desarrollar software que controle Word usando lenguajes de programación. Luego detalla los pasos para crear un proyecto .NET, incluir las referencias a las librerías de Word, y escribir código para abrir Word, crear un documento y escribir texto en él.
1. Automatización y Microsoft
Word
Ofimática
Vicente García Díaz – garciavicente@uniovi.es
Universidad de Oviedo, 2012
Adaptación basada en los documentos de cursos anteriores realizados por María Elena Alva de Sagastegui - alvamaria@unovi.es y Agustín
Cernuda del Río - guti@uniovi.es para la asignatura de Ofimática (Escuela de Ingeniería Informática de la Universidad de Oviedo)
2. 2
Aspectos básicos
Automatización de aplicaciones de Microsoft Office
• Las aplicaciones de Microsoft Office ofrecen librerías para
trabajar con ellas
• Las librerías permiten trabajar con toda la funcionalidad que
ofrece Office como si fueran objetos de programación
• Por lo tanto, puede trabajarse con Office desde software que
nosotros desarrollemos con lenguajes de programación
▫ El software desarrollado: Automation Controller
▫ Los objetos Office que se pueden acceder y manipular:
Automation Object
3. 3
Aspectos básicos
Librerías de objetos COM
• Las librerías de Microsoft Office son librerías COM
▫ Component Object Model (Microsoft, 1993)
• Permite:
▫ La comunicación entre procesos
▫ La intercomunicación entre objetos escritos en
cualquier lenguaje
• Abarca varias tecnologías
▫ OLE
▫ OLE Automatic
▫ ActiveX
▫ COM+
▫ DCOM
4. 4
Aspectos básicos
Comunicación entre COM y .NET
• .NET está sustituyendo a la tecnología COM
• Desde .NET se puede trabajar con la tecnología COM
• Se utilizan “envoltorios” llamados RCM (envoltorio
de tiempo de ejecución)
• La tecnología utilizada es COM Interop
5. 5
Aspectos básicos
Documentación
• En MSDN
▫ Por ejemplo para Word
▫ http://msdn.microsoft.com/en-
us/library/microsoft.office.interop.word(v=office.11).aspx
• En la ficha programador
7. 7
Aspectos básicos
Documentación. Ayuda mediante Visual Basic
• En la ayuda del programa
• Pulsando F1 sobre uno de los comandos
8. 8
Pruebas con la API
Pasos para la automatización
• Es muy sencillo:
1. Se crea un proyecto de .NET
2. Se incluyen las referencias de las librerías necesarias
3. Se incluye el código deseado
10. 10
Pruebas con la API
Incluimos las referencias (1/3)
• Librerías externas para aumentar la
disponibilidad de clases
▫ Java .JAR
▫ .NET .DLL
11. 11
Pruebas con la API
Incluimos las referencias (2/3)
• .NET y COM 1
2
12. 12
Pruebas con la API
Incluimos las referencias (3/3)
• Aunque sean librerías COM, se
tratan como si fueran librerías
.NET
• Clases “envoltorio”
• Permiten facilitar su empleo
13. 13
Pruebas con la API
Para utilizar las clases de las librerías
• Dos opciones: También se podría poner:
using Word = Microsoft.Office.Interop.Word
14. 14
Pruebas con la API
Para abrir una instancia Word
• Insertamos un botón en la ventana
• Hacemos doble “clic” en él
• Introducimos el siguiente código:
• No se verá nada, pero si vamos al
administrador de tareas habrá un
proceso WINWORD.EXE
15. 15
Pruebas con la API
Mostrar/ocultar Word
• Ahora ya se muestra / oculta Word y se puede cerrar
haciendo clic en la X
16. 16
Pruebas con la API
Cerrar Word
• Ahora ya se puede cerrar Word desde el nuevo
botón
19. 19
Pruebas con la API
Trabajar con texto
• Diferentes métodos de acceso
▫ miWord.Selection.Copy()
▫ miWord.Selection.Cut()
▫ miWord.Selection.Paste()
▫ miWord.Selection.Delete()
▫ miWord.Selection.CheckSpelling()
▫ miWord.Selection.Move()
▫ miWord.Selection.Equals()
20. 20
Pruebas con la API
Escribir en el documento
¿La tabla de multiplicar del 9?