เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#

เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#

คุณสามารถเปรียบเทียบเอกสาร Word ตั้งแต่สองเอกสารขึ้นไป หรือเปรียบเทียบไฟล์ Word เดียวกันหลายเวอร์ชันได้อย่างง่ายดาย เพื่อดูความแตกต่างและความคล้ายคลึงกันทางโปรแกรมในแอปพลิเคชัน .NET ของคุณ ในบทความนี้ คุณจะได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไป และเน้นความแตกต่างโดยใช้ C#

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

C# API เพื่อเปรียบเทียบไฟล์ DOCX

สำหรับการเปรียบเทียบไฟล์ DOCX สองไฟล์ขึ้นไป ฉันจะใช้ GroupDocs.Comparison for .NET API โดยจะเปรียบเทียบเอกสารตั้งแต่สองฉบับขึ้นไปและค้นหาการเปลี่ยนแปลงในเนื้อหาของเอกสารสำหรับคำ ย่อหน้า และอักขระ ด้วยเหตุนี้ จึงสร้างเอกสารการเปรียบเทียบที่เน้นความแตกต่างและแสดงรายการสรุปความแตกต่าง นอกจากนี้ยังช่วยให้คุณตรวจจับการเปลี่ยนแปลงและความแตกต่างในลักษณะข้อความระหว่างรูปแบบเอกสารที่คล้ายคลึงกัน API รองรับการเปรียบเทียบรูปแบบเอกสารมาตรฐานอุตสาหกรรมทั้งหมด เช่น PDF, HTML, Word, Excel, PowerPoint, อีเมล Outlook, ไดอะแกรม Visio, OpenDocument, AutoCAD และรูปภาพ

คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

Install-Package GroupDocs.Comparison

เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#

คุณสามารถเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยทางโปรแกรมโดยทำตามขั้นตอนง่ายๆ ที่ระบุด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
  2. เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
  3. ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
  4. เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุต

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปรียบเทียบเอกสาร Word ตั้งแต่สองเอกสารขึ้นไป และเน้นความแตกต่างโดยใช้ C#

// เริ่มต้นการเปรียบเทียบ
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
comparer.Add("C:\\Files\\target.docx");

// เปรียบเทียบและบันทึกความแตกต่าง
comparer.Compare("C:\\Files\\result.docx");
แหล่งที่มาและเป้าหมายไฟล์ DOCX

แหล่งที่มาและเป้าหมายไฟล์ DOCX

เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#

เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#

เอกสารผลลัพธ์ยังมีหน้าสรุปที่ส่วนท้ายของเอกสารซึ่งแสดงสรุปการเปลี่ยนแปลงทั้งหมดที่พบในการเปรียบเทียบ

คลาส Comparer เป็นคลาสหลักที่ช่วยให้คุณสามารถควบคุมและดำเนินการกระบวนการเปรียบเทียบได้ มีหลายวิธีในการเปรียบเทียบเอกสารตั้งแต่สองฉบับขึ้นไป Add() วิธีการของคลาสนี้เพิ่มไฟล์ในกระบวนการเปรียบเทียบ คุณสามารถเพิ่มหลายไฟล์ลงในการเปรียบเทียบได้อย่างง่ายดายโดยใช้เมธอด Add() ดังที่แสดงด้านล่าง:

comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

วิธีการ เปรียบเทียบ() ของคลาส เปรียบเทียบ เปรียบเทียบเอกสารต้นทางและเป้าหมาย วิธีนี้จะเน้นความแตกต่างและบันทึกผลลัพธ์ลงในเส้นทางไฟล์ที่ระบุเป็นพารามิเตอร์อินพุต

เปรียบเทียบเอกสาร Word โดยใช้สตรีมใน C#

คุณสามารถเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ FileStream โดยทำตามขั้นตอนด้านล่าง:

  1. อ่านไฟล์ต้นฉบับในวัตถุสตรีม
  2. อ่านไฟล์เป้าหมายในวัตถุสตรีมอื่น
  3. สร้างอินสแตนซ์ของคลาส Comparer ด้วยออบเจ็กต์ Stream ต้นทาง
  4. เรียกเมธอด Add() ด้วยวัตถุ Stream เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
  5. เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุต

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปรียบเทียบเอกสาร Word โดยใช้ FileStream ใน C#

// อ่านไฟล์ต้นฉบับและเป้าหมาย
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // เริ่มต้นการเปรียบเทียบ
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // เพิ่ม filestream เป้าหมายเพื่อเปรียบเทียบ
        comparer.Add(targetStream);

        // เปรียบเทียบและบันทึกความแตกต่าง
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

รับข้อความของการเปลี่ยนแปลงโดยใช้ C#

คุณสามารถรับข้อความของการเปลี่ยนแปลงที่พบในการเปรียบเทียบเอกสาร Word โดยทางโปรแกรมโดยทำตามขั้นตอนง่าย ๆ ที่ระบุด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
  2. เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
  3. ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
  4. เรียกเมธอด Compare()
  5. เรียกใช้เมธอด GetChanges() เพื่อรับรายละเอียดของการเปลี่ยนแปลง
  6. แสดงการเปลี่ยนแปลง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการรับข้อความของการเปลี่ยนแปลงโดยใช้ C#

// เริ่มต้นการเปรียบเทียบ
Comparer เปรียบเทียบr = new Comparer("C:\\Files\\source.docx");

// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
เปรียบเทียบr.Add("C:\\Files\\target.docx");

// เปรียบเทียบ
เปรียบเทียบr.Compare();

// รับการเปลี่ยนแปลง
ChangeInfo[] changes = เปรียบเทียบr.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// แสดงการเปลี่ยนแปลง
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

คุณสามารถรับรายการการเปลี่ยนแปลงระหว่างไฟล์ต้นฉบับและไฟล์เป้าหมายได้โดยการเรียกเมธอด GetChanges() ของคลาส Comparer มันจะส่งคืนรายการวัตถุ ChangeInfo คลาส ChangeInfo แสดงถึงข้อมูลเกี่ยวกับการเปลี่ยนแปลงและให้คุณสมบัติต่างๆ เพื่อรับรายละเอียดของการเปลี่ยนแปลง เช่น Text, Type เป็นต้น

การเปรียบเทียบคุณสมบัติของเอกสารโดยใช้ C#

คุณสามารถเปรียบเทียบคุณสมบัติบิวท์อินแบบกำหนดเองและคุณสมบัติตัวแปรของเอกสาร Word โดยทางโปรแกรมโดยทำตามขั้นตอนที่ระบุด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
  2. เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
  3. ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
  4. สร้างอินสแตนซ์ของ CompareOptions
  5. ตั้งค่า CompareVariableProperty เป็นจริง
  6. ตั้งค่า CompareDocumentProperty เป็นจริง
  7. เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุตและ CompareOptions

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปรียบเทียบคุณสมบัติของเอกสารโดยใช้ C#

// เริ่มต้นการเปรียบเทียบ
Comparer เปรียบเทียบr = new Comparer("C:\\Files\\source.docx");

// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
เปรียบเทียบr.Add("C:\\Files\\target.docx");

// กำหนดตัวเลือกการเปรียบเทียบ
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// เปรียบเทียบ
เปรียบเทียบr.Compare("C:\\Files\\result.docx", options);
การเปรียบเทียบคุณสมบัติของเอกสารโดยใช้ C#

การเปรียบเทียบคุณสมบัติของเอกสารโดยใช้ C#

คุณสามารถปรับปรุงกระบวนการเปรียบเทียบของคุณได้โดยใช้ตัวเลือกการเปรียบเทียบต่างๆ เพื่อจุดประสงค์นี้ คลาส CompareOptions อนุญาตให้ตั้งค่าตัวเลือกการเปรียบเทียบต่างๆ เพื่อให้ได้ผลลัพธ์ที่เฉพาะเจาะจง CompareDocumentProperty ของคลาสนี้ช่วยให้คุณสามารถเปิดการเปรียบเทียบคุณสมบัติที่มีอยู่แล้วภายในและคุณสมบัติแบบกำหนดเองในรูปแบบ Word ได้ CompareVariableProperty ช่วยให้สามารถเปิดใช้งานการเปรียบเทียบคุณสมบัติของตัวแปรในรูปแบบ Word ได้

เปรียบเทียบเอกสาร Word ที่ป้องกันด้วยรหัสผ่านโดยใช้ C#

คุณสามารถเปรียบเทียบเอกสาร Word ที่มีการป้องกันด้วยรหัสผ่านตั้งแต่สองเอกสารขึ้นไปโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส LoadOptions
  2. ระบุรหัสผ่านสำหรับไฟล์ต้นฉบับ
  3. สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทางและ LoadOptions
  4. เรียกเมธอด Add() ด้วยเส้นทางไฟล์ DOCX เป้าหมายและอินสแตนซ์ LoadOptions พร้อมรหัสผ่าน
  5. ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
  6. เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุต

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปรียบเทียบเอกสาร Word ที่มีการป้องกันด้วยรหัสผ่านโดยใช้ C#

// กำหนดตัวเลือกการโหลดสำหรับไฟล์ต้นฉบับ
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// เริ่มต้นการเปรียบเทียบ
Comparer เปรียบเทียบr = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
เปรียบเทียบr.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// เปรียบเทียบ
เปรียบเทียบr.Compare("C:\\Files\\result.docx");

คลาส LoadOptions ช่วยให้คุณสามารถระบุตัวเลือกเพิ่มเติมในขณะที่โหลดเอกสารได้ โดยมีคุณสมบัติต่อไปนี้เพื่อระบุ:

  • FontDirectories - รายการไดเรกทอรีแบบอักษรที่จะโหลด
  • LoadText — ระบุว่าสตริงที่ส่งเป็นข้อความเปรียบเทียบ ไม่ใช่เส้นทางไฟล์ (สำหรับการเปรียบเทียบข้อความเท่านั้น)
  • รหัสผ่าน — รหัสผ่านของเอกสาร

เปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยใช้ C#

คุณสามารถเปรียบเทียบบุ๊กมาร์กที่มีอยู่ในเอกสาร Word โดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
  2. เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
  3. ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
  4. สร้างอินสแตนซ์ของ CompareOptions
  5. ตั้งค่า เปรียบเทียบบุ๊กมาร์ก ให้เป็นจริง
  6. เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุตและ CompareOptions

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยใช้ C#

// เริ่มต้นการเปรียบเทียบ
Comparer เปรียบเทียบr = new Comparer("C:\\Files\\source.docx");

// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
เปรียบเทียบr.Add("C:\\Files\\target.docx");

// กำหนดตัวเลือกการเปรียบเทียบ
CompareOptions เปรียบเทียบOptions = new CompareOptions();
เปรียบเทียบOptions.CompareBookmarks = true; // เปรียบเทียบ bookmarks

// เปรียบเทียบ
เปรียบเทียบr.Compare("C:\\Files\\result.docx", เปรียบเทียบOptions);
เปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยใช้ C#

เปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยใช้ C#

คุณสมบัติ CompareBookmarks ช่วยให้คุณสามารถเปรียบเทียบบุ๊กมาร์กที่มีอยู่ในเอกสารต้นทางและเป้าหมายได้

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปและเน้นความแตกต่างโดยใช้ C# คุณยังได้เรียนรู้วิธีรับรายการการเปลี่ยนแปลงที่ไฮไลต์อีกด้วย ยิ่งกว่านั้น คุณได้เรียนรู้วิธีเปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยทางโปรแกรม นอกจากนี้ คุณได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word ที่ป้องกันด้วยรหัสผ่านโดยใช้ C# คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Comparison สำหรับ .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย