Trong bài viết này, tôi sẽ trình bày cách tìm và thay thế văn bản trong tài liệu Word (DOC/DOCX) theo lập trình bằng cách sử dụng Java. Hướng dẫn từng bước và các mẫu mã sẽ đề cập đến các tình huống tìm và thay thế văn bản khác nhau trong tài liệu Word.

Tìm và thay thế văn bản trong tài liệu Word

MS Word cung cấp một cách dễ dàng để tìm và thay thế văn bản trong tài liệu. Một trong những trường hợp sử dụng phổ biến của việc tìm và thay thế văn bản có thể là xóa hoặc thay thế thông tin nhạy cảm trong tài liệu trước khi chúng được chia sẻ giữa các thực thể khác nhau. Tuy nhiên, quy trình thủ công có thể yêu cầu bạn cài đặt MS Word và cập nhật từng tài liệu riêng biệt. Trong những tình huống như vậy, sẽ rất hữu ích và tiết kiệm thời gian, đặc biệt là khi bạn đã tích hợp các tính năng tìm và thay thế trong máy tính để bàn hoặc ứng dụng web của mình. Vì vậy, hãy bắt đầu và xem cách tìm và thay thế văn bản trong tài liệu Word bằng Java trong các tình huống khác nhau.

API Java để tìm và thay thế văn bản trong tài liệu Word

Để triển khai tính năng tìm và thay thế, chúng tôi sẽ sử dụng Aspose.Words for Java, một API xử lý văn bản mạnh mẽ, giàu tính năng và dễ sử dụng cho nền tảng Java. Bạn có thể tải xuống JAR của nó hoặc cài đặt nó trong ứng dụng dựa trên Maven của mình bằng cách sử dụng các cấu hình sau.

Kho:

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

phụ thuộc:

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

Tìm và thay thế văn bản trong tài liệu Word (DOC/DOCX) bằng Java

Hãy bắt đầu bằng cách giải quyết một kịch bản tìm và thay thế đơn giản trong đó chúng ta sẽ tìm thấy từ “Sad” trong tài liệu Word đầu vào. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong tài liệu Word DOCX bằng Java.

// Tải tài liệu Word DOCX
Document doc = new Document("document.docx");
// Tìm và thay thế văn bản trong tài liệu
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Lưu tài liệu Word
doc.save("Find-And-Replace-Text.docx");

Dưới đây là tài liệu Word đầu vào mà chúng tôi đã sử dụng trong bài viết này.

tìm và thay thế văn bản trong DOCX bằng Java

Sau đây là kết quả sau khi tìm và thay thế từ “sad”.

tìm và thay thế một từ

Tìm và thay thế các từ tương tự trong Word DOC/DOCX bằng Java

Bạn cũng có thể tùy chỉnh API để tìm và thay thế văn bản dựa trên sự tương đồng. Ví dụ: các từ “sad”, “mad” và “bad” đang theo một mẫu tương tự kết thúc bằng “ad”. ID email là một ví dụ khác về văn bản như vậy. Trong những trường hợp như vậy, bạn có thể xác định một mẫu biểu thức chính quy để tìm và thay thế tất cả các lần xuất hiện văn bản có một mẫu cụ thể. Sau đây là các bước để đạt được điều này.

Mẫu mã sau đây cho biết cách tìm và thay thế các từ tương tự dựa trên một mẫu cụ thể bằng Java.

// Tải tài liệu Word DOCX
Document doc = new Document("document.docx");
// Tìm và thay thế các từ tương tự trong tài liệu
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Lưu tài liệu Word
doc.save("Find-And-Replace-Text.docx");

Sau đây là ảnh chụp màn hình tài liệu Word sau khi cập nhật các từ tương tự.

tìm và thay thế các từ tương tự bằng Java

Aspose.Words cũng cho phép bạn chỉ tìm và thay thế văn bản trong đầu trang/chân trang của tài liệu Word. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong đầu trang/chân trang của tài liệu Word bằng Java.

// Tải tài liệu Word DOCX
Document doc = new Document("document.docx");
// Truy cập bộ sưu tập chân trang đầu trang
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Đặt tùy chọn tìm và thay thế
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);
// Lưu tài liệu Word
doc.save("Find-And-Replace-Text.docx");

Ảnh chụp màn hình sau đây hiển thị văn bản được cập nhật ở chân trang của tài liệu Word.

tìm và thay thế văn bản ở chân trang

Tìm và thay thế văn bản bằng siêu ký tự trong Word DOCX bằng Java

Có thể xảy ra trường hợp bạn cần tìm và thay thế một cụm từ được chia thành nhiều dòng hoặc đoạn văn. Trong những trường hợp như vậy, bạn sẽ phải quan tâm đến ngắt đoạn, phần hoặc ngắt dòng. Aspose.Words for Java giúp bạn xử lý các trường hợp như vậy một cách dễ dàng. Sau đây là các siêu ký tự mà bạn có thể sử dụng cho các thời gian nghỉ giải lao khác nhau:

  • &p: ngắt đoạn
  • &b: ngắt phần
  • &m: ngắt trang
  • &l: ngắt dòng

Mẫu mã sau đây trình bày cách tìm và thay thế văn bản bằng dấu ngắt đoạn trong tài liệu Word.

// Tải tài liệu Word DOCX
Document doc = new Document("document.docx");
// Đặt tùy chọn
FindReplaceOptions options = new FindReplaceOptions();
// Vô hiệu hóa trường hợp phù hợp và chỉ tìm toàn bộ từ
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Thay thế văn bản bằng ngắt đoạn
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Lưu tài liệu Word
doc.save("Find-And-Replace-Text.docx");

Sau đây là ảnh chụp màn hình của tài liệu Word đầu ra.

tìm và thay thế văn bản bằng ký tự meta

Sự kết luận

Trong bài viết này, bạn đã biết cách tìm và thay thế văn bản trong tài liệu Word DOC/DOCX bằng lập trình bằng Java. Nhiều tình huống tìm và thay thế văn bản trong tệp MS Word DOCX đã được giải quyết với sự trợ giúp của các mẫu mã. Bạn có thể tìm hiểu thêm về Aspose.Words for Java từ tài liệu.

Xem thêm