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.
Artículos similares
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.

muy bueno el post gracias por todo
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.
Hola Muy buen aporte me ha sido de mucha utilidad