Genesis Vargas J

Como crear y editar archivos de Word desde C#

Comparte:

Hola que tal amigos, les traigo este tutorial sobre como trabajar con Word desde C#. En este caso voy a mostrar como crear un nuevo archivo de Word desde nuestro programa y también como modificar un archivo ya existente.

Empezamos creando un nuevo proyecto de WindowsForms en C# y agregamos la referencia para trabajar con Word (Microsoft.Office.Interop.Word), luego colocamos el espacio de nombre de ésta misma y procedemos a colocar nuestro código para crear un nuevo documento.

CREAR DOCUMENTO

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;

namespace ManipularWord
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            object ObjMiss = System.Reflection.Missing.Value;
            Word.Application ObjWord = new Word.Application();
            Word.Document ObjDoc = ObjWord.Documents.Add(ref ObjMiss, ref ObjMiss, ref ObjMiss, ref ObjMiss);
            ObjDoc.Activate();
            ObjWord.Selection.Font.Color = Word.WdColor.wdColorRed;
            ObjWord.Selection.TypeText(textBox1.Text);
            ObjWord.Visible = true;
        }
    }
}

El código es sencillo y nos muestra que estamos creando un objeto WordApplication y uno de tipo WordDocument y a este ultimo se le asigna el método Add con 4 paramaetros correspondientes a un valor de tipo object para interactuar con la dll, luego se activa el documento y finalmente se realizan los cambios de color de la fuente y asignacion del texto en el docuemnto de word para después mostrar el documento.

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;

namespace ManipularWord
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            object ObjMiss = System.Reflection.Missing.Value;
            Word.Application ObjWord = new Word.Application();
            string ruta = Application.StartupPath + @"\documento.docx";
            object parametro = ruta;
            object nombre1 = "nombre";
            object telefono1 = "telefono";
            Word.Document ObjDoc = ObjWord.Documents.Open(parametro, ObjMiss);
            Word.Range nom = ObjDoc.Bookmarks.get_Item(ref nombre1).Range;
            nom.Text = textBox1.Text;
            Word.Range tel = ObjDoc.Bookmarks.get_Item(ref telefono1).Range;
            tel.Text = textBox2.Text;
            object rango1 = nom;
            object rango2 = tel;
            ObjDoc.Bookmarks.Add("nombre", ref rango1);
            ObjDoc.Bookmarks.Add("telefono", ref rango2);
            ObjWord.Visible = true;
        }
    }
}

El código es sencillo y nos muestra que estamos creando un objeto WordApplication y uno de tipo WordDocument y a este ultimo se le asigna el método Open con 2 paramaetros correspondientes a la ruta del archivo y otro de tipo object para interactuar con la dll, luego se crean dos variable de tipo WordRange con los dos marcadores de nuestra plantilla que hicimos en nuestro archivo de Word (recuerda que éstos se llaman: nombre y telefono) y a éstos se les asigna en la propiedad Text el valor que tengan los 2 textbox de nuestro formulario y finalmente se sgregan los dos marcadores con el método Add y se le pasan los parametros del nombre y las variables object que tienen el rango que se hizo anteriormente para después mostrar el documento modificado.

Y nuestro programa en funcionamiento se vería así:

Si deseas puedes ver este tutorial en video para que veas como es el paso a paso para realizar esta pequeña tarea.

Bueno eso es todo espero que les sirva mucho para aprender y practicar. les dejo una carpeta comprimida para que descarguen el ejemplo.

Comentarios


genesis vargas

Soy Genesis Vargas Jiménez, autor de éste blog. Me gusta desarrollar software en todas las plataformas (web, móvil y desktop) y compartir conocimiento para ayudar a muchas personas.

Desde el 2015 soy MVP Microsoft en Visual Studio y tecnologías de desarrollo, reconocimiento que me enorgullece mucho.

MVP Genesis Vargas J

A PHP Error was encountered

Severity: Core Warning

Message: Module 'timezonedb' already loaded

Filename: Unknown

Line Number: 0

Backtrace: