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:
- buscar y reemplazar texto en Word DOC/DOCX usando C#
- buscar y reemplazar palabras similares en un documento de Word
- buscar y reemplazar texto usando Regex
- buscar y reemplazar texto en el encabezado/pie de página del documento de Word
- buscar y reemplazar texto con metacaracteres en un documento de Word
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
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.
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.
- Cree una instancia de la clase Document e inicialice con la ruta del documento de Word.
- Busque y reemplace texto usando el método Document.Range.Replace(string, string, FindReplaceOptions).
- Guarde el documento usando el método Document.Save(string).
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
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
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
Buscar y reemplazar texto en encabezado/pie de página de documento de Word usando C#
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
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
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
- Buscar y reemplazar texto en documentos de Word usando Java
- Automatización de .NET Word: cree documentos de Word enriquecidos en C#
Sugerencia: puede que le interese un Convertidor de texto a GIF gratuito que le permite generar animaciones a partir de textos.