У цій статті я покажу, як програмно знайти та замінити текст у документах Word (DOC/DOCX) за допомогою Java. Покроковий посібник і зразки коду охоплюють різні сценарії пошуку та заміни тексту в документах Word.

Пошук і заміна тексту в документах Word

MS Word забезпечує простий спосіб пошуку та заміни тексту в документах. Одним із популярних варіантів використання пошуку та заміни тексту може бути видалення або заміна конфіденційної інформації в документах перед тим, як вони будуть надані іншим особам. Однак ручний процес може вимагати встановлення MS Word і оновлення кожного документа окремо. У таких ситуаціях це було б зручно та заощадило б час, особливо якщо ви інтегрували функції пошуку та заміни у свій робочий стіл або веб-програму. Тож давайте почнемо й побачимо, як знайти та замінити текст у документах Word за допомогою Java у різних сценаріях.

Java API для пошуку та заміни тексту в документах Word

Щоб реалізувати функцію пошуку та заміни, ми будемо використовувати Aspose.Words for Java, який є потужним, багатим на функції та простим у використанні API обробки тексту для платформи Java. Ви можете завантажити його JAR або встановити його у своїй програмі на основі Maven, використовуючи наступні конфігурації.

Репозиторій:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Залежність:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.5</version>
    <classifier>jdk17</classifier>
</dependency>

Пошук і заміна тексту в документах Word (DOC/DOCX) за допомогою Java

Давайте почнемо з розгляду простого сценарію пошуку та заміни, де ми знайдемо слово «Sad» у вхідному документі Word. Нижче наведено кроки для виконання цієї операції.

У наведеному нижче прикладі коду показано, як знайти та замінити текст у документах Word DOCX за допомогою Java.

// Завантажте документ Word DOCX
Document doc = new Document("document.docx");
// Знайдіть і замініть текст у документі
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Збережіть документ Word
doc.save("Find-And-Replace-Text.docx");

Нижче наведено вхідний документ Word, який ми використовували в цій статті.

знаходити та замінювати текст у DOCX за допомогою Java

Нижче наведено результат пошуку та заміни слова “сумний”.

знайти і замінити слово

Знайдіть і замініть схожі слова в Word DOC/DOCX за допомогою Java

Ви також можете налаштувати API для пошуку та заміни тексту на основі схожості. Наприклад, слова “сумний”, “божевільний” і “поганий” мають аналогічний шаблон, який закінчується на “реклама”. Іншим прикладом такого тексту є ідентифікатори електронної пошти. У таких випадках ви можете визначити шаблон регулярного виразу, щоб знайти та замінити всі входження тексту, що мають певний шаблон. Нижче наведено кроки для досягнення цього.

У наведеному нижче прикладі коду показано, як знайти та замінити схожі слова на основі певного шаблону за допомогою Java.

// Завантажте документ Word DOCX
Document doc = new Document("document.docx");
// Знайдіть і замініть подібні слова в документі
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Збережіть документ Word
doc.save("Find-And-Replace-Text.docx");

Нижче наведено знімок екрана документа Word після оновлення подібних слів.

знаходити та замінювати схожі слова за допомогою Java

Aspose.Words також дозволяє знаходити та замінювати текст лише у верхньому/нижньому колонтитулі документа Word. Нижче наведено кроки для виконання цієї операції.

У наведеному нижче прикладі коду показано, як знайти та замінити текст у верхньому/нижньому колонтитулі документа Word за допомогою Java.

// Завантажте документ Word DOCX
Document doc = new Document("document.docx");
// Доступ до колекції нижнього колонтитула
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Встановіть параметри пошуку та заміни
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);
// Збережіть документ Word
doc.save("Find-And-Replace-Text.docx");

На наступному знімку екрана показано оновлений текст у нижньому колонтитулі документа Word.

знайти та замінити текст у нижньому колонтитулі

Знайдіть і замініть текст метасимволами в Word DOCX за допомогою Java

Може бути випадок, коли вам потрібно знайти та замінити фразу, яка поділена на кілька рядків або абзаців. У таких випадках вам доведеться подбати про розриви абзаців, розділів або рядків. Aspose.Words for Java спрощує вирішення таких випадків. Нижче наведено метасимволи, які можна використовувати для різних розривів:

  • &p: розрив абзацу
  • &b: розрив розділу
  • &m: розрив сторінки
  • &l: розрив рядка

У наведеному нижче прикладі коду показано, як знайти та замінити текст із розривом абзацу в документі Word.

// Завантажте документ Word DOCX
Document doc = new Document("document.docx");
// Встановити параметри
FindReplaceOptions options = new FindReplaceOptions();
// Вимкнути пошук регістру та пошук лише цілих слів
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Замінити текст розривом абзацу
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Збережіть документ Word
doc.save("Find-And-Replace-Text.docx");

Нижче наведено знімок екрана вихідного документа Word.

знаходити та замінювати текст метасимволами

Висновок

У цій статті ви побачили, як програмно знайти та замінити текст у документах Word DOC/DOCX за допомогою Java. За допомогою зразків коду розглянуто різні сценарії пошуку та заміни тексту у файлах MS Word DOCX. Ви можете дізнатися більше про Aspose.Words for Java з документації.

Дивись також