In questo articolo, illustrerò come trovare e sostituire il testo nei documenti Word (DOC/DOCX) a livello di codice utilizzando Java. La guida passo passo e gli esempi di codice tratteranno vari scenari di ricerca e sostituzione del testo nei documenti di Word.

MS Word fornisce un modo semplice per trovare e sostituire il testo nei documenti. Uno dei casi d’uso più diffusi per trovare e sostituire il testo potrebbe essere la rimozione o la sostituzione di informazioni sensibili all’interno dei documenti prima che vengano condivise tra varie entità. Tuttavia, il processo manuale potrebbe richiedere l’installazione di MS Word e l’aggiornamento di ogni documento separatamente. In tali situazioni, sarebbe utile e fa risparmiare tempo soprattutto quando hai integrato le funzionalità di ricerca e sostituzione all’interno del tuo desktop o dell’applicazione web. Quindi iniziamo e vediamo come trovare e sostituire il testo nei documenti di Word utilizzando Java in vari scenari.
- Trova e sostituisci testo in Word DOC/DOCX utilizzando Java
- Sostituisci parole simili in base al modello Regex in Word DOC/DOCX
- Trova e sostituisci testo nell’intestazione/piè di pagina del documento di Word
- Trova e sostituisci testo con metacaratteri in Word DOC/DOCX
API Java per trovare e sostituire il testo nei documenti di Word
Per implementare la funzione trova e sostituisci, utilizzeremo Aspose.Words for Java che è un’API di elaborazione testi per piattaforma Java potente, ricca di funzionalità e facile da usare. Puoi scaricare il suo JAR o installarlo all’interno della tua applicazione basata su Maven utilizzando le seguenti configurazioni.
Archivio:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dipendenza:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
Trova e sostituisci testo in documenti Word (DOC/DOCX) utilizzando Java
Iniziamo affrontando un semplice scenario trova e sostituisci in cui troveremo la parola “Triste” all’interno del documento Word di input. Di seguito sono riportati i passaggi per eseguire questa operazione.
- Crea un’istanza della classe Document e passa ad essa il percorso del documento di Word.
- Trova e sostituisci il testo usando il metodo Document.getRange.replace(String, String, FindReplaceOptions).
- Salva il documento usando il metodo Document.save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo nei documenti Word DOCX utilizzando Java.
// Carica un documento Word DOCX
Document doc = new Document("document.docx");
// Trova e sostituisci il testo nel documento
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Salva il documento di Word
doc.save("Find-And-Replace-Text.docx");
Di seguito è riportato il documento Word di input che abbiamo utilizzato in questo articolo.

Quello che segue è l’output dopo aver trovato e sostituito la parola “triste”.

Trova e sostituisci parole simili in Word DOC/DOCX utilizzando Java
Puoi anche personalizzare l’API per trovare e sostituire il testo in base alla somiglianza. Ad esempio, le parole “triste”, “matto” e “cattivo” seguono uno schema simile che termina con “annuncio”. Gli ID e-mail sono un altro esempio di tale testo. In questi casi, puoi definire un modello regolare per trovare e sostituire tutte le occorrenze di testo con un modello particolare. Di seguito sono riportati i passaggi per raggiungere questo obiettivo.
- Crea un’istanza della classe Document e passa ad essa il percorso del documento di Word.
- Definisci un pattern regex usando il metodo Pattern.compile() e passalo al metodo Document.getRange().replace(Pattern pattern, String replacement, FindReplaceOptions options).
- Salva il documento aggiornato utilizzando il metodo Document.save(String).
L’esempio di codice seguente mostra come trovare e sostituire parole simili in base a un modello particolare utilizzando Java.
// Carica un documento Word DOCX
Document doc = new Document("document.docx");
// Trova e sostituisci parole simili nel documento
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Salva il documento di Word
doc.save("Find-And-Replace-Text.docx");
Quello che segue è lo screenshot del documento di Word dopo aver aggiornato parole simili.

Sostituisci il testo nell’intestazione/piè di pagina del documento di Word
Aspose.Words consente inoltre di trovare e sostituire il testo solo nell’intestazione/piè di pagina del documento di Word. Di seguito sono riportati i passaggi per eseguire questa operazione.
- Crea un’istanza della classe Document e passa ad essa il percorso del documento di Word.
- Ottieni HeaderFooterCollection del documento utilizzando il metodo Document.getFirstSection().getHeadersFooters().
- Recupera la particolare intestazione/piè di pagina nell’oggetto HeaderFooter.
- Usa il metodo HeaderFooter.getRange().replace() per trovare e sostituire il testo.
- Salva il documento Word aggiornato.
L’esempio di codice seguente mostra come trovare e sostituire il testo nell’intestazione/piè di pagina del documento di Word utilizzando Java.
// Carica un documento Word DOCX
Document doc = new Document("document.docx");
// Accedi alla raccolta del piè di pagina dell'intestazione
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Imposta le opzioni di ricerca e sostituzione
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);
// Salva il documento di Word
doc.save("Find-And-Replace-Text.docx");
La schermata seguente mostra il testo aggiornato nel piè di pagina del documento di Word.

Trova e sostituisci testo con metacaratteri in Word DOCX utilizzando Java
Potrebbe verificarsi il caso in cui è necessario trovare e sostituire una frase divisa in più righe o paragrafi. In questi casi, dovrai occuparti del paragrafo, della sezione o delle interruzioni di riga. Aspose.Words per Java semplifica la gestione di questi casi abbastanza facilmente. Di seguito sono riportati i metacaratteri che puoi utilizzare per diverse interruzioni:
- &p: interruzione di paragrafo
- &b: interruzione di sezione
- &m: interruzione di pagina
- &l: interruzione di riga
Nell’esempio di codice seguente viene illustrato come trovare e sostituire il testo con un’interruzione di paragrafo in un documento di Word.
// Carica un documento Word DOCX
Document doc = new Document("document.docx");
// Imposta opzioni
FindReplaceOptions options = new FindReplaceOptions();
// Disabilita la corrispondenza tra maiuscole e minuscole e trova solo parole intere
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Sostituisci il testo con un'interruzione di paragrafo
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Salva il documento di Word
doc.save("Find-And-Replace-Text.docx");
Quello che segue è lo screenshot del documento Word di output.

Conclusione
In questo articolo, hai visto come trovare e sostituire il testo nei documenti Word DOC/DOCX a livello di codice utilizzando Java. Vari scenari di ricerca e sostituzione di testo nei file MS Word DOCX sono stati affrontati con l’aiuto di esempi di codice. Puoi saperne di più su Aspose.Words per Java dalla documentazione.