Este artículo cubre varios enfoques para buscar y reemplazar texto en documentos de Word usando C# en aplicaciones .NET o .NET Core.

Buscar y reemplazar es una función bastante útil de MS Word para ubicar y reemplazar rápidamente el texto deseado en los documentos. Se vuelve más práctico y ahorra tiempo cuando trabaja con documentos más largos. En los casos en que necesite buscar y reemplazar texto en cientos de documentos de Word o necesite automatizar este proceso, definitivamente optará por hacerlo mediante programación. Entonces, en este artículo, le mostraré cómo buscar y reemplazar texto en documentos de Word mediante programación en diferentes escenarios usando C#. Una vez que hayas leído este artículo, podrás:

Biblioteca C# para buscar y reemplazar texto en un documento de Word

En primer lugar, cree un nuevo proyecto de C# (Consola, ASP.NET, etc.) en Visual Studio e instale Aspose.Words for .NET a través de NuGet Package Manager o Package Manager Console.

Instalación a través del Administrador de paquetes NuGet

Buscar y reemplazar texto en Word DOC

Instalación a través de la consola del administrador de paquetes

PM> Install-Package Aspose.Words

Después de instalar Aspose.Words for .NET, comencemos a buscar y reemplazar texto en el siguiente documento de Word.

c# buscar y reemplazar texto en un documento de word

Buscar y reemplazar texto en documentos de Word en C#

Los siguientes son los pasos para buscar y reemplazar un texto en particular en un documento de Word usando Aspose.Words for .NET.

La clase FindReplaceOptions proporciona varias opciones para personalizar las operaciones de búsqueda/reemplazo. El siguiente ejemplo de código muestra cómo buscar y reemplazar una palabra o cadena en particular en un documento de Word usando C#.

// Cargar un documento docx de Word
Document doc = new Document("document.docx");
// Buscar y reemplazar texto en el documento
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Guardar el documento de Word
doc.Save("Find-And-Replace-Text.docx");

Producción

encontrar texto en un documento de word usando c#

Buscar y reemplazar palabras similares en documentos de Word usando C#

También puede personalizar la API para encontrar palabras similares y reemplazarlas con una palabra en particular. Por ejemplo, puede encontrar las palabras “triste” y “enojado” y reemplazarlas con una sola palabra. El siguiente ejemplo de código muestra cómo buscar y reemplazar palabras similares en un documento de Word usando C#.

// Cargar un documento docx de Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Buscar y reemplazar texto en el documento
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Guardar el documento de Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Producción

c# reemplazar texto en archivo docx

Buscar y reemplazar texto usando Regex en C#

Puede darse el caso de que desee buscar y reemplazar el texto que aparece en un patrón particular. Por ejemplo, debe ocultar/reemplazar todas las ID de correo electrónico en un documento de Word. En tales casos, puede crear una expresión regular para ID de correo electrónico y pasarla al método Document.Range.Replace(Regex, string, FindReplaceOptions).

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto según un patrón en un documento de Word.

// Cargar un documento docx de Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Establecer expresión regular para ID de correo electrónico 
Regex EmailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
// Buscar y reemplazar texto en el documento
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Guardar el documento de Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Producción

como reemplazar texto en documento word

También puede buscar y reemplazar texto en las secciones de encabezado o pie de página de un documento de Word usando la clase HeaderFooter. El método HeaderFooter.Range.Replace(string, string, FindReplaceOptions) se usa para este propósito. El siguiente ejemplo de código muestra cómo reemplazar texto en el encabezado o pie de página de un documento de Word en C#.

// Cargar un documento de Word
Document doc = new Document("document.docx");
// Acceder al encabezado/pie de página del documento de Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Establecer opciones
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Reemplazar texto en el pie de página del documento de Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Guardar el documento de Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Producción

Búsqueda y reemplazo de texto en documentos de Word en C#.NET

Buscar y reemplazar texto con metacaracteres en documentos de Word usando C#

Podría haber un escenario en el que un texto o una frase en particular se componga de varios párrafos, secciones o páginas. En tales casos, el método simple de buscar y reemplazar no funcionaría de manera efectiva y tendremos que manejar los saltos de párrafo, los saltos de sección o los saltos de página. Para esto, Aspose.Words le permite usar los siguientes metacaracteres en la cadena de búsqueda o la cadena de reemplazo:

  • &p: salto de párrafo
  • &b: salto de sección
  • &m: salto de página
  • &l: salto de línea

El siguiente ejemplo de código muestra cómo buscar y reemplazar el texto con un salto de párrafo en un documento de Word.

// Cargar un documento docx de Word
Document doc = new Document("document.docx"); 
// Establecer opciones 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Reemplazar texto con salto de párrafo
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Guardar el documento de Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Producción

buscar y reemplazar texto usando expresiones regulares C#

Conclusión

Este artículo cubre algunas formas útiles de buscar y reemplazar texto en un documento de Word basado en palabras, frases y patrones de expresiones regulares coincidentes o similares mediante programación. Estas características no solo automatizan el proceso de reemplazo de texto, sino que también le ahorran mucho tiempo y esfuerzo necesarios en la operación manual de búsqueda y reemplazo en documentos de Word. Puede obtener más información sobre la biblioteca de palabras de Aspose utilizando documentación.

Artículos relacionados

Sugerencia: puede que le interese un Convertidor de texto a GIF gratuito que le permite generar animaciones a partir de textos.