Home :: Web :: net :: Crear un Documento MSWord con C#
 
Creando-Documento-en-MSWord-con-C#

Crear un Documento MSWord con C#

may 20, 2010 en net,Productividad por Victor Parasi

Cansado de realizar tu reportes en un archivo de texto? si ya te cansaste de que tu aplicación interactúe con NotePad, entonces este post es para tí

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Al ser MS Word, uno de los procesadores de texto más usados, Visual Studio permite interactuar con MS Word, de forma que podamos crear y escribir un reporte utilizando esta aplicación.

Antes de empezar a analizar el código, diremos que Visual Studio 2008, permite crear proyectos del tipo Office; es decir, ya viene preparado para crear aplicaciones (Add-ins) no sólo con MS Word, sino con MS Excel, MS Outlook, de una forma bastante sencilla, pero no voy a usar esa opción.

Lo que voy a hacer es mediante un proyecto ClassLibrary, interactuar con el Assembly (Interop) que me permite trabajar con MS Word, como si fuera una clase mas. Este Assembly viene con Visual Studio 2008, pero si por alguna razón no lo tienes, te dejo este link: http://msdn.microsoft.com/es-es/library/15s06t57(VS.80).aspx

Bueno, empezaremos creando un proyecto del tipo ClassLibrary al cual le voy a agregar la siguiente referencia: Microsoft.Office.Interop.Word. Para MS Office 2007, la versión de este Assembly es la 12.0, para MS Office 2003, es la 11.0.

Luego que ya esta creado el proyecto ClassLibrary y hemos añadido la referencia antes indicada, debes de agregar este línea en el código de nuestra clase.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word; //Agrega esta línea

Agregada la línea anterior, voy colocar un método a la clase del ClassLibrary, de forma que podamos: crear una instancia de una aplicación MSWord, agregarle un Documento para poder escribir y luego insertar texto en el documento.

Te dejo el código:

public class Reporte
{

        public void EscribirenunDocumentoWord()
        {
            //Objeto del Tipo Word Application
            Word.Application objWordApplication;
            //Objeto del Tipo Word Document
            Word.Document objWordDocument;
            // Objeto para interactuar con el Interop
            Object oMissing = System.Reflection.Missing.Value;

            //Creamos una instancia de una Aplicación Word.
            objWordApplication = new Word.Application();
            //A la aplicación Word, le añadimos un documento.
            objWordDocument = objWordApplication.Documents.Add(ref oMissing,
                                                             ref oMissing,
                                                             ref oMissing,ref oMissing );

            //Activamos el documento recien creado, de forma que podamos escribir en el
            objWordDocument.Activate();
            //Empezamos a escribir
            objWordApplication.Selection.TypeText("Este es un ejemplo desarrollado por ");
            objWordApplication.Selection.TypeText("COPSTONE, esperamos que sea útil y ");
            objWordApplication.Selection.TypeText(" que te ayude a crear nuevas y  ");
            objWordApplication.Selection.TypeText("mejores aplicaciones. ");
            //Indicamos que el texto anterior es parte de un párrafo.
            objWordApplication.Selection.TypeParagraph();

            //Ahora veamos como cambiar el tipo y tamaño de la letra

            objWordApplication.Selection.Font.Name="Arial" ; //Cambiamos el nombre
            objWordApplication.Selection.Font.Size= 19; //Cambiamos el tamaño
            //Alinearemos el texto que vamos a escribir al centro
            objWordApplication.Selection.ParagraphFormat.Alignment=
               Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter ;
            //Agregamos al texto
            objWordApplication.Selection.TypeText("Hecho por Copstone 2010");
            //Indicamos que el texto anterior es un párrafo
            objWordApplication.Selection.TypeParagraph();
            //Hace visible la Aplicacion para que veas lo que se ha escrito
            objWordApplication.Visible = true; 

        }

Ahora, si quieres automatizar mas cosas como insertar tablas, imágenes, debes de empezar con leer el esquema del objeto MSWord, te dejo un link donde puedes encontrar mayor información: http://msdn.microsoft.com/en-us/library/kw65a0we(VS.80).aspx

Espero que este post te sea de mucha ayuda y si tienes alguna duda, deja un comentario.


Autor: Victor Parasi

Siempre es difícil escribir sobre uno mismo, qué contar, o por donde empezar, suele ser todo un dilema al momento de presentarse. Aquí vamos. Les diré que soy peruano, Ingeniero por vocación, dedicado a la docencia y siempre en la búsqueda de programar cada vez mejor. Aunque a veces algo terco, sé que no todo en la vida es blanco o negro. Existe el Open Source, y lo respeto pero me llevo mejor con el .Net. Si me hablas de preferencias, te digo que C#, C++, una buena película, colores oscuros, escribir, leer e investigar. Para terminar les diré que amo muchísimo a una mujer espectacular y que es la dueña de mi corazón.


Comentarios (4)

Carlos dice:

muy bueno el post gracias por todo

Carlos dice:

Hola

quisiera saber si no nesecita una libreria para poder trabajarlo en c++

Hola,
Realmente lo único que necesitas es el Interop de MSOffice 2007. Lo puedes descargar en el link que he colocado.

Alberto dice:

Hola Muy buen aporte me ha sido de mucha utilidad

Deja un comentario

   

copstone en Facebook

Otros artículos

Si crees que los punteros sólo sirven para apuntar datos o vectores, pues estás equivocado. También sirven para apuntar a bloques de código, si tienes una duda de como hacerlo o quieres enterarte más, te invito a leer este post.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Un web service o servicio web es un estándar de comunicación por medio de documentos XML que permite comunicar aplicaciones que no necesariamente estén en el mismo lenguaje, sistema operativo o inclusive ubicación geográfica. Si quieres hacer un servicio web para que muchas aplicaciones puedan consultar tu información entonces un buen punto de partida es este artículo.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Uno, dos, tres, cuál es el número que obtendré esta vez?. No sé si te ha pasado pero cuando deseo generar un número aleatorio, a veces, se convierte en un gran dolor de cabeza. No por lo difícil que puede resultar el comando o rutina a utilizar, sino porque siempre sale el mismo número, una y otra vez. Espero que al leer este artículo te pueda ayudar a resolver este problema.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Las páginas web modernas hacen uso de AJAX para realizar peticiones al servidor y obtener nuevo contenido sin necesidad de cargar toda la página nuevamente. En este artículo voy a enseñar como crear peticiones AJAX de forma nativa y responder a ellas de forma nativa y con PHP. Además te mostraré como usar PHP para responder a peticiones AJAX.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

A que no sabías que puedes crear y ejecutar aplicaciones en PHP desde el IDE de Visual Studio, te dejo este post para que te enteres más acerca de este tema.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

mayo 2010
L M X J V S D
« abr   jul »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Categorías

Comparte este artículo

  • Facebook
  • Google Bookmarks
  • Google Gmail
  • Twitter
  • Yahoo Mail
  • Hotmail
  • LinkedIn
  • Share
TIENES ALGO QUE PREGUNTAR? ESCRÍBENOS AQUÍ

Copyright © 2012 - Programando por diversion

Subir