Extract Text from MS Word Documents in C#

Tài liệu Microsoft Word là một mảng để tạo và chia sẻ nội dung văn bản. Nếu bạn đang phát triển các ứng dụng C# tương tác với các tài liệu này, bạn có thể thấy mình cần phải rút văn bản từ chúng. Điều này có thể là cho các mục đích như phân tích văn bản hoặc rút các phần cụ thể của một tài liệu để thu thập thành một mới. Trong bài viết blog này, chúng tôi sẽ đi sâu vào các phương pháp để rút văn bản từ các tài liệu Word trong C#.

Bảng nội dung

C# Thư viện cho Text Extraction

Aspose.Words cho .NET is a powerful and user-friendly library designed for working with Word documents. It provides a comprehensive set of features, including text extraction, document creation, manipulation, and conversion. With Aspose.Words for .NET, developers can efficiently manage various aspects of Word documents, making it an invaluable tool for your development needs.

To get started, Download Thư viện or install it directly from NuGet using the following command in the package manager console:

PM> Install-Package Aspose.Words

Hiểu văn bản Extraction trong Word Documents

Một tài liệu MS Word bao gồm các yếu tố khác nhau như các đoạn, bảng, và hình ảnh. Do đó, các yêu cầu để rút văn bản có thể khác nhau dựa trên trường hợp sử dụng cụ thể. Bạn có thể cần để rút văn bản giữa các đoạn, bảng, bình luận, và nhiều hơn nữa.

Mỗi yếu tố trong một tài liệu Word được trình bày như một nút. Do đó, để xử lý một tài liệu một cách hiệu quả, bạn sẽ cần phải làm việc với các nút này.

Hướng dẫn từng bước để rút văn bản từ một tài liệu Word

Trong phần này, chúng tôi sẽ triển khai một C# text extractor cho Word tài liệu. dòng công việc cho text extraction sẽ bao gồm các bước sau:

  • Định nghĩa các nút để bao gồm trong quá trình khai thác.
  • Thu thập nội dung giữa các nút được chỉ định (bao gồm hoặc loại trừ các nút khởi đầu và kết thúc).
  • Sử dụng các nút được extract cloned để tạo một tài liệu Word mới chứa nội dung được extract.

Chúng ta sẽ tạo ra một phương pháp được gọi là ExtractContent mà sẽ chấp nhận các nút và các thông số khác để thực hiện khai thác văn bản. phương pháp này sẽ phân tán tài liệu và clone các nút dựa trên các thông số sau:

  • StartNodeEndNode: Chúng xác định các điểm khởi đầu và kết thúc cho việc thu thập nội dung. Chúng có thể là cấp khối (ví dụ: Điều, Bảng) hoặc nút cấp inline (ví dụ: Run, FieldStart, BookmarkStart).- Đối với các trường, hãy nhập đối tượng tương ứng FieldStart.

  • Để đánh dấu sách, hãy sử dụng các nút BookmarkStartBookmarkEnd.

  • Để nhận xét, hãy sử dụng các nút CommentRangeStartCommentRangeEnd.

  • IsInclusive: Parameter này xác định liệu các dấu hiệu được bao gồm trong chiết xuất.Nếu được thiết lập để giả và các nút tương tự hoặc liên tiếp được cung cấp, một danh sách trống sẽ được trả về.

Dưới đây là triển khai hoàn chỉnh của phương pháp ExtractContent để lấy nội dung giữa các nút được chỉ định:

Ngoài ra, một số phương pháp hỗ trợ được yêu cầu bởi phương pháp ExtractContent để tạo điều kiện cho việc khai thác văn bản:

Bây giờ chúng tôi có các phương pháp của chúng tôi sẵn sàng, chúng tôi có thể tiếp tục lấy văn bản từ một tài liệu Word.

Tích xuất văn bản giữa các đoạn của một tài liệu từ {#Tích xuất văn bản giữa các đoạn}

Để lấy nội dung giữa hai đoạn trong một tài liệu Word DOCX, hãy làm theo các bước sau đây:

  • Tải tài liệu Word bằng cách sử dụng lớp Document.
  • Nhận tham chiếu đến các đoạn bắt đầu và kết thúc bằng phương pháp Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Hãy gọi phương pháp ExtractContent(startPara, endPara, True) để lấy các nút vào một đối tượng.
  • Sử dụng phương pháp hỗ trợ GenerateDocument(Document, extractedNodes) để tạo một tài liệu với nội dung được extracted.
  • Lưu tài liệu mới bằng phương pháp Document.Save(string).

Dưới đây là một mẫu mã cho thấy làm thế nào để rút văn bản giữa các đoạn 7 và 11 trong một tài liệu Word:

Tiết xuất văn bản giữa các loại node khác nhau

Bạn cũng có thể trích xuất nội dung giữa các loại nút khác nhau. ví dụ, chúng ta hãy trích xuất nội dung giữa một đoạn và một bảng và lưu nó vào một tài liệu Word mới.

  • Tải tài liệu Word bằng cách sử dụng lớp Document.
  • Nhận tham chiếu đến các nút bắt đầu và kết thúc bằng cách sử dụng phương pháp Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Gọi ExtractContent(startPara, endPara, True) để rút các nút vào một đối tượng.
  • Sử dụng phương pháp hỗ trợ GenerateDocument(Document, extractedNodes) để tạo một tài liệu với nội dung được extracted.
  • Lưu tài liệu mới bằng cách sử dụng Document.Save(string).

Dưới đây là mẫu mã để lấy văn bản giữa một đoạn và một bảng trong C#:

Tích xuất văn bản dựa trên phong cách {#Tích xuất văn bản giữa các đoạn văn bản dựa trên phong cách}

Để trích xuất nội dung giữa các đoạn dựa trên phong cách, hãy làm theo các bước sau đây. Đối với trình bày này, chúng tôi sẽ trích xuất nội dung giữa “Đề 1” đầu tiên và “Đề 3” đầu tiên trong tài liệu Word:

  • Tải tài liệu Word bằng cách sử dụng lớp Document.
  • Thu thập các đoạn văn vào một đối tượng bằng cách sử dụng phương pháp hỗ trợ ParagraphsByStyleName(Document, “Heading 1”).
  • Thu thập các đoạn văn vào một đối tượng khác bằng cách sử dụng ParagraphsByStyleName(Document, “Heading 3].
  • Gọi ExtractContent(startPara, endPara, True) với các yếu tố đầu tiên từ cả hai đoạn.
  • Sử dụng phương pháp hỗ trợ GenerateDocument(Document, extractedNodes) để tạo một tài liệu với nội dung được extracted.
  • Lưu tài liệu mới bằng cách sử dụng Document.Save(string).

Dưới đây là một mẫu mã để lấy nội dung giữa các đoạn dựa trên các phong cách:

Đọc thêm về Text Extraction

Explore additional scenarios for extracting text from Word documents through Bài viết tài liệu này.

Nhận Thư viện Tự do Word Text Extractor

You can obtain a Giấy phép tạm thời miễn phí to extract text without evaluation limitations.

Kết luận

Aspose.Words cho .NET là một thư viện đa dạng làm nhanh quá trình thu thập văn bản từ các tài liệu Word trong C#. Với tính năng rộng rãi và API thân thiện với người dùng, bạn có thể làm việc hiệu quả với các tài liệu Word và tự động hóa các kịch bản thu thập văn bản khác nhau. Cho dù bạn đang phát triển các ứng dụng đòi hỏi xử lý tài liệu Word hoặc đơn giản là thu thập văn bản, Aspose.Words cho .NET là một công cụ thiết yếu cho các nhà phát triển.

To explore more features of Aspose.Words for .NET, check out the Tài liệu. If you have any questions, feel free to reach out via our Diễn đàn.

Xem thêm

Tip: You may want to check out the Aspose PowerPoint cho Word Converter, which demonstrates the popular process of converting presentations to Word documents.

More in this category