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 en un post anterior vimos el beneficio de los punteros a funciones en C, debemos de conocer entoces que ofrece el lenguaje C# para cubrir este punto.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Cuando hablamos de Windows de seguro recuerdas en tu mente una bandera con los colores rojo, verde, azul y amarillo o quizás el sonido clásico de este Sistema Operativo cuando iniciamos una sesión. Ya pasaron varios años y sobre todos varias versiones (7 para ser exactos), desde la primera vez que apareció el primer Sistema Operativo Windows. En esta ocasión Microsoft ha lanzado la nueva versión de su clásico producto y sin temor a equivocarme es largamente superior a su versión anterior.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Cansado de crear tus reportes en archivos de texto, o Crystal Report?. Pues es hora que hagas tus reportes en PDF haciendo uso de una librería muy poderosa y gratuita.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Desde ya hace unos años, ha evolucionado la forma que un programador hace sus consultas o trabaja con un origen de datos. Se ha buscado mezclar, de alguna forma, el lenguaje SQL con C# y en general otros que soporta la tecnología .Net. Lee este post y entérate de que se trata.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Para realizar una aplicación que interactúe con una Base de Datos, en Visual Studio, debes de conocer algunos conceptos nuevos, empieza aprendiendo qué es ADO.NET.

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