|
Otro nuevo pseudo tutorial
de cómo insertar los datos de un fichero Word o Excel a una plantilla Word
automáticamente, utilizando WinForm .net (framework 2.0 de momento) en C#.
Para ello empezamos creando
una plantilla de Word, personalizando el encabezado y pie de página.
Además de esto, vamos a la
primera línea del documento (no debería haber más) e introducimos un nuevo
marcador. Para esto vamos al menú Insertar-> Marcador… ->Introducimos un
nombre al marcador (en mi ejemplo le he puesto “inicio”) y agregamos.
Guardamos la plantilla como
*.dot y pasamos a Visual.
Mencionar que en este
proyecto lo he dejado bastante comentado, puede que quizá sea más sencillo
mirar el propio código que la explicación, aun así, continuamos.
Creamos nuevo proyecto,
nombre al gusto, y en mi caso FrameWork 2.0 (No quiero meterme con 3.5 ya que
no lo tengo mirado y para hacer chapuzas mejor no).
Agregamos dos nuevas
referencias al proyecto.
Proyecto-> Agregar
Referencia… y nos desplazamos a la pestaña Com. De esta agregamos “Microsoft
Office 11.0 Object Library” (u otra versión, dependiendo del office que
tengamos instalado) y “Microsoft Word 11.0 Object Library”.
Incluimos la referencia al
namespace de Word. En mi caso he tenido que crear un alias al namespace llamado
Word, ya que sino no podía acceder directamente (todavía no entiendo por qué).
using
Word=Microsoft.Office.Interop.Word;
Personalizamos el
formulario principal a nuestro gusto, así queda el mío (en ejecución)
Declaramos las variables a
utilizar en toda la clase:
string
impresora = string.Empty;
Object
oNulo = System.Reflection.Missing.Value;
Object
oTrue = true;
Object
oFalse = false;
//Variable
para la aplicación Word
Word.Application
oWord;
//Variable
para documento
Word.Document
oWordPlan;
//Variables
con la ruta de las plantillas
string
plantillaxls = System.Environment.CurrentDirectory
+ "\\plantillaxls.dot";
string
plantilladoc = System.Environment.CurrentDirectory
+ "\\plantilladoc.dot";
//Variable
con el filtro de los Cuadros de Dialogo
string filtrodlg = "Documentos
Office (*.doc, *.xls)|*.doc;*.xls|Documentos Word (*.doc)|*.doc";
oWord = new Microsoft.Office.Interop.Word.Application();
oWordDoc = new
Microsoft.Office.Interop.Word.Document();
|