Home :: Otros :: Productividad :: Trabajando con Word en Visual Studio 2010 y C#
 
Creando-Documento-en-MSWord-con-C#

Trabajando con Word en Visual Studio 2010 y C#

ene 10, 2012 en Productividad por Victor Parasi

Este post esta hecho para explicar como buscar y reemplazar e insertar tablas en Word mediante Visual Studio y C#

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Este post es una extensión de uno que ya tiene algo de tiempo, pero lo hice porque me pidieron ayuda en explicar como se hacen algunas cosas. No voy a explicar como interactuar con el documento Word, eso esta en el post anterior, lo que voy a hacer es presentar dos casos puntuales de automatización.

Búsqueda y Reemplazo de Palabras.

Imaginemos que tenemos un documento y queremos reemplazar una palabra por otra.

Para ubicarte en la forma que he trabajado, les comento que he definido un proyecto del tipo ClassLibrary y allí he colocado los métodos necesarios.

 

public class WordCsharp
    {

        Word.Application _objWordApplication; //Objeto Word
        Word.Document _objWordDocument;  //Objeto Document
        Object oMissing = System.Reflection.Missing.Value;

	//Funcion que sirve para abrir un archivo de Word creado previamente.
        private void LoadWordFile(string _filename)
        {
            _objWordApplication = new Word.Application();
            _objWordDocument = _objWordApplication.Documents.Open(_filename,false,false,false,
				ref oMissing, ref oMissing,
				ref oMissing, ref oMissing);
            _objWordApplication.Visible = true;
        }

	//Funcion que Busca y reemplaza un texto por otro.
        public void FindReplace(string _filename, string _find, string _replace)
        {
            	//Abrimos el archivo
		LoadWordFile(_filename);
		//Seleccionamos todo el documento para buscar y reemplazar el texto
                Word.Find findObject = _objWordApplication.Selection.Find;
                findObject.ClearFormatting();
                findObject.Text = _find;
                findObject.Replacement.ClearFormatting();
                findObject.Replacement.Text = _replace;

                //Escoger esta opción permite reemplzar todas las
		//ocurrencias del texto en el documento.
		object replaceAll = Word.WdReplace.wdReplaceAll;
                findObject.Execute(ref oMissing, ref oMissing,
				   ref oMissing, ref oMissing, ref oMissing,
                                   ref oMissing, ref oMissing, ref oMissing,
				   ref oMissing, ref oMissing, ref replaceAll,
				   ref oMissing, ref oMissing, ref oMissing,
				   ref oMissing);
            }

        }
    }

 

Insertando una Tabla

Continuando con la misma clase anterior, ahora vamos a crear un método que inserte, al final del documento, una tabla. La dimensión de la tabla la puedes pasar como parámetro.

public void InsertTable(string _filename,int _col, int _row)
        {

            //Abrimos el archivo
            LoadWordFile(_filename);
            //Bookmark de final del archivo
	    Object end_document="\\endofdoc";
	    //Definimos la tabla
            Word.Table _table;
            Word.Range wrdRng = _objWordDocument.Bookmarks.get_Item(ref end_document).Range;
            _table = _objWordDocument.Tables.Add(wrdRng, _row, _col,
					ref oMissing, ref oMissing);
            _table.Range.ParagraphFormat.SpaceAfter = 6;
            int r, c;
            string strText;
            for (r = 1; r <= _row; r++)
                for (c = 1; c <= _col; c++)
                {
		    //Este es el texto que vamos a colocar en cada Celda
                    strText = "r" + r + "c" + c;
                    _table.Cell(r, c).Range.Text = strText;
                }
            //Cambiando los items de la primera fila
            _table.Rows[1].Range.Font.Bold = 1;
            _table.Rows[1].Range.Font.Italic = 1;
            //Visualizando los bordes Verticales y Horizontales
            _table.Borders[Word.WdBorderType.wdBorderVertical].Visible=true ;
            _table.Borders[Word.WdBorderType.wdBorderHorizontal].Visible = true; 

        }

Observa con cuidado que en el método anterior se abre el documento nuevamente. Esa línea la puedes quitar si es que sobre UN solo documento se va a aplicar varias opciones.

 

Espero que le saquen provecho a este post automatizando cada vez mas cosas en Word.


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.


Deja un comentario

   

copstone en Facebook

Otros artículos

Los archivos bat son pequeños programas de Windows que podemos crear muy rápidamente y son muy útiles para realizar tareas repetitivas y tediosas. Se pueden crear archivos bat para borrar archivos temporales o cookies, copiar carpetas, realizar backups e inclusive para mandar archivos a través de una red. En este artículo voy a mostrar algunos trucos para la creación de archivos bat.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Si estas cansado de que tu aplicación se “congele” cuando realizas una función determinada, aquí te dejo una solución para este problema.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Tanti auguri! Llegamos a los 50! es momento de celebraciones y junto con la celebración les regalamos un programa.

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

La cámara web que utilizamos en nuestras PC’s pueden ser manipuladas con código en C++ junto con las API de Windows. Con estas podemos detectar movimiento, tomar fotos y muchas cosas más.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

enero 2012
L M X J V S D
« nov    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

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