Cargar archivos de Office 2007 en un Formulario de Windows en C#
Algunas veces, tenemos la necesidad de mostrar cierta información contenida en algunos documentos de Office y lo que por lo regular hacemos en crear un objeto de aplicación Windows y que nos abra el office, cierto?. Pero como lo dice el nombre de este post, hoy vamos a ver como mostrar dichos documentos dentro del mismo formulario, sin abrir el ambiente de office 2007.
- Primero creamos un aplicación de Windows con C# a la que llamaremos OfficeWindows.
- Agregamos un control WebBowser y colocamos su propiedad Dock en Fill.
- Agregamos un control OpenFileDialog y un MenuStrip en donde colocamos la instucción de Abrir Archivo de Office para explorar el archivo que vamos a abrir.
El formulario debe quedar como se muestra en la siguiente figura:
Ahora vamos a agregar un poco de código para que esto función, el código es el siguiente:
namespace OfficeWindows { public partial class Form1 : Form { public Object oDoc; public string FileName; public Form1() { InitializeComponent(); this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); } private void Form1_Load(object sender, EventArgs e) { openFileDialog1.Filter = "Documentos de Office (*.docx, *.xlsx, *.pptx)|*.docx;*.xlsx;*.pptx" ; openFileDialog1.FilterIndex = 1; } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { oDoc = e.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, e, null); Object oApplication = e.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDoc, null); } private void abrirDocumentoDeOfficeToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.FileName = ""; openFileDialog1.ShowDialog(); FileName = openFileDialog1.FileName; if (FileName.Length != 0) { Object refmissing = System.Reflection.Missing.Value; oDoc = null; webBrowser1.Navigate(FileName); } } } }
Este es el código que va dentro del formulario, tomando en cuenta que dejaron los nombres por default a los controles. Y el resultado es el siguiente:
Ahora solo si quieren manipular los eventos que se hagan dentro del office, tendrán que crear un objeto de Word, Excel, etc. para manejarlos, espero que les sea de utilidad y nos escribimos en otro post.









Comentarios recientes