En este artículo, demostraré cómo buscar y reemplazar texto en documentos de Word (DOC/DOCX) mediante programación usando Java. La guía paso a paso y los ejemplos de código cubrirán varios escenarios de búsqueda y reemplazo de texto en documentos de Word.

MS Word proporciona una manera fácil de buscar y reemplazar texto en los documentos. Uno de los casos de uso más populares para buscar y reemplazar texto podría ser eliminar o reemplazar información confidencial dentro de los documentos antes de que se compartan entre varias entidades. Sin embargo, el proceso manual puede requerir que instale MS Word y actualice cada documento por separado. En tales situaciones, sería útil y ahorraría tiempo, especialmente cuando haya integrado funciones de búsqueda y reemplazo dentro de su escritorio o aplicación web. Entonces, comencemos y veamos cómo buscar y reemplazar texto en documentos de Word usando Java en varios escenarios.
- Buscar y reemplazar texto en Word DOC/DOCX usando Java
- Reemplace palabras similares según el patrón Regex en Word DOC/DOCX
- Buscar y reemplazar texto en el encabezado/pie de página del documento de Word
- Buscar y reemplazar texto con metacaracteres en Word DOC/DOCX
API de Java para buscar y reemplazar texto en documentos de Word
Para implementar la característica de buscar y reemplazar, usaremos Aspose.Words for Java, que es una API de procesamiento de textos poderosa, rica en características y fácil de usar para la plataforma Java. Puede descargar su JAR o instalarlo dentro de su aplicación basada en Maven usando las siguientes configuraciones.
Repositorio:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependencia:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
Buscar y reemplazar texto en documentos de Word (DOC/DOCX) usando Java
Comencemos abordando un escenario simple de buscar y reemplazar donde encontraremos la palabra “Triste” dentro del documento de Word de entrada. Los siguientes son los pasos para realizar esta operación.
- Cree una instancia de la clase Document y pásele la ruta del documento de Word.
- Busque y reemplace texto usando el método Document.getRange.replace(String, String, FindReplaceOptions).
- Guarde el documento usando el método Document.save(String).
El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en documentos DOCX de Word usando Java.
// Cargar un documento DOCX de Word
Document doc = new Document("document.docx");
// Buscar y reemplazar texto en el documento
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Guardar el documento de Word
doc.save("Find-And-Replace-Text.docx");
A continuación se muestra el documento de Word de entrada que hemos utilizado en este artículo.

El siguiente es el resultado después de encontrar y reemplazar la palabra “triste”.

Buscar y reemplazar palabras similares en Word DOC/DOCX usando Java
También puede personalizar la API para buscar y reemplazar texto según la similitud. Por ejemplo, las palabras “triste”, “enojado” y “malo” siguen un patrón similar que termina en “anuncio”. Los ID de correo electrónico son otro ejemplo de este tipo de texto. En tales casos, puede definir un patrón de expresiones regulares para buscar y reemplazar todas las apariciones de texto que tengan un patrón particular. Los siguientes son los pasos para lograrlo.
- Cree una instancia de la clase Document y pásele la ruta del documento de Word.
- Defina un patrón de expresiones regulares usando el método Pattern.compile() y páselo al método Document.getRange().replace(Pattern pattern, String replacement, FindReplaceOptions options).
- Guarde el documento actualizado usando el método Document.save(String).
El siguiente ejemplo de código muestra cómo buscar y reemplazar palabras similares según un patrón particular usando Java.
// Cargar un documento DOCX de Word
Document doc = new Document("document.docx");
// Buscar y reemplazar palabras similares en el documento
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Guardar el documento de Word
doc.save("Find-And-Replace-Text.docx");
La siguiente es la captura de pantalla del documento de Word después de actualizar palabras similares.

Reemplazar texto en el encabezado/pie de página del documento de Word
Aspose.Words también le permite buscar y reemplazar texto solo en el encabezado/pie de página del documento de Word. Los siguientes son los pasos para realizar esta operación.
- Cree una instancia de la clase Document y pásele la ruta del documento de Word.
- Obtenga HeaderFooterCollection del documento usando el método Document.getFirstSection().getHeadersFooters().
- Recupere el encabezado/pie de página particular en el objeto HeaderFooter.
- Use el método HeaderFooter.getRange().replace() para buscar y reemplazar texto.
- Guarde el documento de Word actualizado.
El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en el encabezado/pie de página de un documento de Word usando Java.
// Cargar un documento DOCX de Word
Document doc = new Document("document.docx");
// Acceder a la colección de encabezados y pies de página
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Establecer opciones de buscar y reemplazar
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().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.docx");
La siguiente captura de pantalla muestra el texto actualizado en el pie de página del documento de Word.

Buscar y reemplazar texto con metacaracteres en Word DOCX usando Java
Podría darse el caso de que necesite buscar y reemplazar una frase que está dividida en varias líneas o párrafos. En tales casos, deberá tener cuidado con los saltos de párrafo, sección o línea. Aspose.Words for Java simplifica el manejo de estos casos con bastante facilidad. Los siguientes son los metacaracteres que puede usar para diferentes descansos:
- &p: salto de párrafo
- &b: salto de sección
- &m: salto de página
- &l: salto de línea
El ejemplo de código siguiente 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();
// Deshabilitar coincidencia de mayúsculas y minúsculas y encontrar solo palabras completas
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Reemplazar texto con salto de párrafo
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Guardar el documento de Word
doc.save("Find-And-Replace-Text.docx");
La siguiente es la captura de pantalla del documento de Word de salida.

Conclusión
En este artículo, ha visto cómo buscar y reemplazar texto en documentos DOC/DOCX de Word mediante programación usando Java. Se han abordado varios escenarios de búsqueda y reemplazo de texto en archivos DOCX de MS Word con la ayuda de ejemplos de código. Puede obtener más información sobre Aspose.Words for Java en la documentación.