Tài liệu xử lý văn bản là cách phổ biến nhất để soạn thảo hợp đồng, thỏa thuận, giấy tờ và nhiều tài liệu chính thức khác. Nếu bạn cần so sánh và hợp nhất hai tài liệu Word, giống như tùy chọn theo dõi thay đổi của Microsoft Word, chúng ta có thể lập trình thực hiện việc đó trong các ứng dụng .NET của mình. Trong bài viết này, chúng ta sẽ thảo luận cách so sánh hai tài liệu Word và làm nổi bật những điểm khác biệt đã xác định bằng C#. Ngoài ra, chúng tôi sẽ xem xét cách so sánh các tài liệu được bảo vệ bằng mật khẩu, chấp nhận và từ chối các thay đổi cũng như so sánh nhiều hơn hai tài liệu với các ví dụ C#.

So sánh Tài liệu Word để tìm sự khác biệt bằng cách sử dụng .NET API

Các chủ đề sau đây được thảo luận ở đây:

.NET API để so sánh tài liệu Word

GroupDocs.Comparison cung cấp API .NET cho phép so sánh và sau đó hợp nhất các tài liệu khác nhau ở nhiều định dạng tệp trong ứng dụng .NET. Tôi sẽ sử dụng API .NET của nó tức là GroupDocs.Comparison for .NET để so sánh các tài liệu Word.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API trong ứng dụng .NET của bạn qua NuGet.

PM> Install-Package GroupDocs.Comparison

So sánh tài liệu Word bằng C#

Nếu bạn có hai phiên bản của một tài liệu, bạn có thể so sánh các tài liệu để tìm sự khác biệt của chúng (thêm, xóa) và tạo một tài liệu mới hiển thị tất cả các thay đổi. Sau đây là các bước để so sánh hai tài liệu Word bất kỳ và làm nổi bật sự khác biệt.

  • Tải tài liệu Word đầu tiên bằng lớp So sánh.
  • Thêm tệp thứ hai vào Bộ so sánh bằng phương thức Add().
  • So sánh và nhận tóm tắt các thay đổi bằng cách gọi phương thức So sánh().

Mã C# sau đây cho biết cách so sánh các tài liệu Word và nhận các thay đổi trong tài liệu kết quả.

/*
 * So sánh hai tài liệu Word và các thay đổi nổi bật bằng C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Chấp nhận hoặc Từ chối các Thay đổi được Xác định của Tài liệu Word bằng C#

Tương tự như tùy chọn theo dõi thay đổi của MS Word, bạn có thể chấp nhận hoặc từ chối từng thay đổi đã xác định. Sau đây là các bước để so sánh và sau đó chấp nhận hoặc từ chối các thay đổi đã xác định trong tài liệu Word.

  • Tải tài liệu nguồn và thêm (các) tài liệu Word đích bằng cách sử dụng lớp So sánh.
  • So sánh các tài liệu đã tải bằng phương pháp So sánh().
  • Nhận các thay đổi đã xác định bằng phương thức GetChanges().
  • Giờ đây, bạn có thể duyệt qua các thay đổi và đặt ComparisonAction cho từng thay đổi.
    • Đối với mỗi thay đổi, bạn có thể chọn Chấp nhận hoặc Từ chối.
  • Khi thực hiện xong các thay đổi, hãy gọi phương thức ApplyChanges() để nhận tài liệu kết quả có các thay đổi được áp dụng.

Mã nguồn C# sau đây so sánh hai tài liệu Word và sau đó chấp nhận một thay đổi đã xác định rồi từ chối một thay đổi khác.

/*
 * Chấp nhận và từ chối các thay đổi đã xác định bằng cách so sánh các tài liệu Word bằng C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Từ chối thay đổi được xác định đầu tiên và nó sẽ không được thêm vào tài liệu kết quả
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

So sánh nhiều hơn hai tài liệu bằng C#

Tương tự, có thể so sánh nhiều hơn hai tài liệu trong một lần. Sau đây là các bước để so sánh nhiều tài liệu Word để tìm sự khác biệt và làm nổi bật các thay đổi đã xác định.

  • Tải tài liệu Word đầu tiên bằng lớp So sánh.
  • Tiếp tục thêm (các) tài liệu khác vào Bộ so sánh bằng phương pháp Add().
  • Gọi phương thức So sánh() để nhận các thay đổi và tóm tắt các thay đổi.

Mã C# sau đây cho biết cách so sánh nhiều hơn hai tài liệu Word và nhận các thay đổi trong tài liệu kết quả.

/*
 * So sánh nhiều tài liệu Word bằng C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

So sánh các tài liệu Word được bảo vệ bằng mật khẩu bằng C#

Nếu tài liệu của bạn được bảo vệ bằng mật khẩu, chỉ cần cung cấp mật khẩu của họ trong khi tải tài liệu. Các bước sau đây cho thấy cách chúng ta có thể so sánh nội dung của các tài liệu được bảo vệ bằng mật khẩu bằng C#.

  • Chuẩn bị các tùy chọn tải cho tài liệu nguồn và đích bằng cách cung cấp mật khẩu.
  • Tải tài liệu nguồn bằng lớp So sánh.
  • Thêm tài liệu đích vào Bộ so sánh bằng cách sử dụng các tùy chọn tải đã chuẩn bị.
  • Nhận tóm tắt sự khác biệt bằng cách gọi phương thức So sánh().

Ví dụ mã C# sau đây so sánh hai tệp Word được bảo vệ bằng mật khẩu và tạo tài liệu kết quả làm nổi bật sự khác biệt.

/*
 * So sánh các tài liệu Word được bảo vệ bằng mật khẩu bằng C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Để kết luận, chúng ta đã học cách so sánh hai hoặc nhiều tài liệu Word bằng C#. Hơn nữa, sau khi làm nổi bật sự khác biệt, chúng tôi đã học cách chấp nhận và từ chối các thay đổi đã xác định theo chương trình. Cuối cùng, chúng tôi cũng đã thảo luận về cách chúng tôi có thể so sánh các tài liệu Word được bảo vệ bằng mật khẩu trong các ứng dụng .NET.

Có nhiều tùy chỉnh khác để kiểm soát kết quả so sánh, chẳng hạn như đặt độ nhạy so sánh, chỉ hiển thị trang tóm tắt, bỏ qua các khoảng trống, v.v. Tìm hiểu thêm về GroupDocs.Comparison for .NET. Truy cập tài liệu của nó để bắt đầu xây dựng các ứng dụng so sánh tài liệu của riêng bạn cho nhiều định dạng tài liệu được hỗ trợ. Nếu có thắc mắc, hãy liên hệ với chúng tôi qua diễn đàn.

Xem thêm