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.

Buscar y reemplazar 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.

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.

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.

buscar y reemplazar texto en DOCX usando Java

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

buscar y reemplazar una palabra

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.

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.

encontrar y reemplazar palabras similares usando Java

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.

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 en el pie de página

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.

buscar y reemplazar texto con metacaracteres

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.

Ver también