Cómo puedes automatizar Microsoft World e incrustarlo en VB.NET
¿Cuál será el mejor método para incrustar un documento de Word en una aplicación VB.Net? Asumo que la mayoría de ustedes se acuerda de la antigua tecnología OLE, la cual dejaba incrustar gráficos de Excel en documentos de Word. O utiliza Office XP Primary Interpol Assemblies o el control Embed the WebBrowser y navega hasta el documento de Office apropiado, etc. Pero este grupo de tecnologías no es accesible desde las funciones completas de Microsoft Word. Incompatible con varias instancias de MS Word en una computadora. Existen grandes toneladas de errores conocidos en él.
Presiona aquí para que descargues el componente Office Viewer: compatibilidad con vb6, proyecto vb.net para Word, Excel, PowerPoint, Visio y Project
Nuestro artículo te guiará (paso a paso) para que sepas cómo incrustar un archivo de MS Word en una aplicación VB.NET.
Debes empezar por instalar el paquete en caso de que no tengas a la mano el archivo officeviewer.ocx.
Para incrustar componente de Word en VB.NET:
Ábrete Visual Studio y procede con crear una nueva aplicación VB.NET.
Hazle clic derecho a la solución HostOffice. Continúa presionando en Agregar referencia... elemento de menú.
Debes marcar el archivo officeviewer.ocx en la pestaña Examinar, todo ubicado en el cuadro de diálogo emergente.
O puedes escoger el componente Edraw Office Viewer desde la pestaña COM.
Pulsa Aceptar. ¡Voilà! Las referencias del componente Edraw Office Viewer se han agregado en el nuevo proyecto vb.net.
Cámbiate a la ventana de diseño de formulario de Form1.
Prosigue arrastrando el componente Edraw Office Viewer desde el panel Caja de herramientas al Form1.
Tipea los siguientes códigos de VB.NET para abrir, guardar como nuevo, cerrar e imprimir un documento de Word con este aspecto:
Public Class Form1
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
If Dialog1.ShowDialog() Then
If Dialog1.GetChooseType() = 1 Then
AxEDOffice1.CreateNew("Word.Application")
ElseIf Dialog1.GetChooseType() = 2 Then
AxEDOffice1.CreateNew("Excel.Application")
ElseIf Dialog1.GetChooseType() = 3 Then
AxEDOffice1.CreateNew("PowerPoint.Application")
ElseIf Dialog1.GetChooseType() = 4 Then
AxEDOffice1.CreateNew("Visio.Application")
ElseIf Dialog1.GetChooseType() = 5 Then
AxEDOffice1.CreateNew("MSProject.Application")
End If
End If
End Sub
Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
AxEDOffice1.OpenFileDialog()
End Sub
Private Sub btnSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveAs.Click
AxEDOffice1.SaveFileDialog()
End Sub
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
AxEDOffice1.CloseDoc()
End Sub
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
AxEDOffice1.PrintDialog()
End Sub
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
AxEDOffice1.PrintPreview()
End Sub
Private Sub btnToolbars_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToolbars.Click
If AxEDOffice1.Toolbars = True Then
AxEDOffice1.Toolbars = False
Else
AxEDOffice1.Toolbars = True
End If
End Sub
Private Sub btnAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbout.Click
AxEDOffice1.AboutBox()
End Sub
End Class
Abre el Administrador de configuración. Cambia la plataforma de solución activa como opción x86.
Luego compila el proyecto VB.NET y ejecútalo.
El componente Office Viewer es compatible con MS Word 97, Word 2000, Word 2003, Word 2007 y Word 2010. Puede ejecutarse en el sistema operativo Windows 2000/XP/Vista/2008/7 de 32 o 64 bits. Para incrustar MS Excel o PowerPoint, Visio, Project en una aplicación VB.NET, no necesitas cambiar nada, solo cambia el segundo parámetro del método Open de la siguiente manera:
public void Open()
{
axEDOffice1.Open(sPath, "Excel.Application");
axEDOffice1.Open(sPath, "PowerPoint.Application");
axEDOffice1.Open(sPath, "Visio.Application");
axEDOffice1.Open(sPath, "MSProject.Application");
}
Automatización de Word en el componente Office Viewer
Usar COM para automatizar Word desde tu aplicación de Visual Basic no es muy difícil con el componente de Word. Agrega una referencia para Word Object Library 11.0 desde agregar referencia en el explorador de soluciones. Aquí estoy usando Word 2003, por lo que la versión de la biblioteca de objetos es 11.0.
El código de muestra a continuación muestra cómo construir un documento mínimo, insertar un marcador y, en un momento posterior, reemplazar el marcador vacío con texto.
Importa Microsoft.Office.Interop.Word
Private Sub Automating_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Automating.Click
Dim word = AxEDOffice1.GetApplication()
word.Visible = True
Dim doc As Document = AxEDOffice1.ActiveDocument()
Dim range As Range = doc.Range
range.InsertAfter("Range1" + vbCrLf)
range.Collapse(WdCollapseDirection.wdCollapseEnd)
doc.Bookmarks.Add("MijnBookmark", range)
range.InsertAfter("Range2" + vbCrLf)
Dim bookmark As Bookmark = doc.Bookmarks(1)
range = bookmark.Range
range.Text = "Bookmark" + vbCrLf
range.Font.Color = WdColor.wdColorBlue
End Sub
Una cosa a tener en cuenta al automatizar Word es Word Macro Recorder. Todavía está allí en Word 2007, pero está oculto en la barra de cinta del desarrollador. Un poco extraño, ya que la grabadora de macros siempre fue la forma más sencilla de automatizar Word para el usuario promedio y, por lo general, no tienen la cinta de desarrollador visible.
Incrustación de MS Office en el programa ASP.NET