คุณสามารถเปรียบเทียบเอกสาร Word ตั้งแต่สองเอกสารขึ้นไป หรือเปรียบเทียบไฟล์ Word เดียวกันหลายเวอร์ชันได้อย่างง่ายดาย เพื่อดูความแตกต่างและความคล้ายคลึงกันทางโปรแกรมในแอปพลิเคชัน .NET ของคุณ ในบทความนี้ คุณจะได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไป และเน้นความแตกต่างโดยใช้ C#
หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:
- C# API เพื่อเปรียบเทียบไฟล์ DOCX
- เปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ C#
- เปรียบเทียบเอกสาร Word โดยใช้สตรีมใน C#
- รับข้อความของการเปลี่ยนแปลงโดยใช้ C#
- การเปรียบเทียบคุณสมบัติของเอกสารโดยใช้ C#
- เปรียบเทียบเอกสาร Word ที่ป้องกันด้วยรหัสผ่านโดยใช้ C#
- เปรียบเทียบบุ๊กมาร์กในเอกสาร 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 สองเอกสารขึ้นไปโดยทางโปรแกรมโดยทำตามขั้นตอนง่ายๆ ที่ระบุด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
- เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
- ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
- เรียกเมธอด Compare() ด้วยเส้นทางไฟล์เอาต์พุต
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปรียบเทียบเอกสาร Word ตั้งแต่สองเอกสารขึ้นไป และเน้นความแตกต่างโดยใช้ C#
// เริ่มต้นการเปรียบเทียบ
Comparer comparer = new Comparer("C:\\Files\\source.docx");
// เพิ่มไฟล์เป้าหมายเพื่อเปรียบเทียบ
comparer.Add("C:\\Files\\target.docx");
// เปรียบเทียบและบันทึกความแตกต่าง
comparer.Compare("C:\\Files\\result.docx");
เอกสารผลลัพธ์ยังมีหน้าสรุปที่ส่วนท้ายของเอกสารซึ่งแสดงสรุปการเปลี่ยนแปลงทั้งหมดที่พบในการเปรียบเทียบ
คลาส Comparer เป็นคลาสหลักที่ช่วยให้คุณสามารถควบคุมและดำเนินการกระบวนการเปรียบเทียบได้ มีหลายวิธีในการเปรียบเทียบเอกสารตั้งแต่สองฉบับขึ้นไป Add() วิธีการของคลาสนี้เพิ่มไฟล์ในกระบวนการเปรียบเทียบ คุณสามารถเพิ่มหลายไฟล์ลงในการเปรียบเทียบได้อย่างง่ายดายโดยใช้เมธอด Add() ดังที่แสดงด้านล่าง:
comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");
วิธีการ เปรียบเทียบ() ของคลาส เปรียบเทียบ เปรียบเทียบเอกสารต้นทางและเป้าหมาย วิธีนี้จะเน้นความแตกต่างและบันทึกผลลัพธ์ลงในเส้นทางไฟล์ที่ระบุเป็นพารามิเตอร์อินพุต
เปรียบเทียบเอกสาร Word โดยใช้สตรีมใน C#
คุณสามารถเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปโดยใช้ FileStream โดยทำตามขั้นตอนด้านล่าง:
- อ่านไฟล์ต้นฉบับในวัตถุสตรีม
- อ่านไฟล์เป้าหมายในวัตถุสตรีมอื่น
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยออบเจ็กต์ Stream ต้นทาง
- เรียกเมธอด Add() ด้วยวัตถุ Stream เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
- เรียกเมธอด 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 โดยทางโปรแกรมโดยทำตามขั้นตอนง่าย ๆ ที่ระบุด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
- เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
- ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
- เรียกเมธอด Compare()
- เรียกใช้เมธอด GetChanges() เพื่อรับรายละเอียดของการเปลี่ยนแปลง
- แสดงการเปลี่ยนแปลง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการรับข้อความของการเปลี่ยนแปลงโดยใช้ 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 โดยทางโปรแกรมโดยทำตามขั้นตอนที่ระบุด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
- เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
- ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
- สร้างอินสแตนซ์ของ CompareOptions
- ตั้งค่า CompareVariableProperty เป็นจริง
- ตั้งค่า CompareDocumentProperty เป็นจริง
- เรียกเมธอด 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);
คุณสามารถปรับปรุงกระบวนการเปรียบเทียบของคุณได้โดยใช้ตัวเลือกการเปรียบเทียบต่างๆ เพื่อจุดประสงค์นี้ คลาส CompareOptions อนุญาตให้ตั้งค่าตัวเลือกการเปรียบเทียบต่างๆ เพื่อให้ได้ผลลัพธ์ที่เฉพาะเจาะจง CompareDocumentProperty ของคลาสนี้ช่วยให้คุณสามารถเปิดการเปรียบเทียบคุณสมบัติที่มีอยู่แล้วภายในและคุณสมบัติแบบกำหนดเองในรูปแบบ Word ได้ CompareVariableProperty ช่วยให้สามารถเปิดใช้งานการเปรียบเทียบคุณสมบัติของตัวแปรในรูปแบบ Word ได้
เปรียบเทียบเอกสาร Word ที่ป้องกันด้วยรหัสผ่านโดยใช้ C#
คุณสามารถเปรียบเทียบเอกสาร Word ที่มีการป้องกันด้วยรหัสผ่านตั้งแต่สองเอกสารขึ้นไปโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส LoadOptions
- ระบุรหัสผ่านสำหรับไฟล์ต้นฉบับ
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทางและ LoadOptions
- เรียกเมธอด Add() ด้วยเส้นทางไฟล์ DOCX เป้าหมายและอินสแตนซ์ LoadOptions พร้อมรหัสผ่าน
- ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
- เรียกเมธอด 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 โดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Comparer ด้วยเส้นทางไฟล์ DOCX ต้นทาง
- เรียกเมธอด Add() ด้วยไฟล์ DOCX เป้าหมายเพื่อเพิ่มลงในการเปรียบเทียบ
- ทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มไฟล์อื่นๆ ในการเปรียบเทียบ
- สร้างอินสแตนซ์ของ CompareOptions
- ตั้งค่า เปรียบเทียบบุ๊กมาร์ก ให้เป็นจริง
- เรียกเมธอด 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);
คุณสมบัติ CompareBookmarks ช่วยให้คุณสามารถเปรียบเทียบบุ๊กมาร์กที่มีอยู่ในเอกสารต้นทางและเป้าหมายได้
รับใบอนุญาตฟรี
คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word สองเอกสารขึ้นไปและเน้นความแตกต่างโดยใช้ C# คุณยังได้เรียนรู้วิธีรับรายการการเปลี่ยนแปลงที่ไฮไลต์อีกด้วย ยิ่งกว่านั้น คุณได้เรียนรู้วิธีเปรียบเทียบบุ๊กมาร์กในเอกสาร Word โดยทางโปรแกรม นอกจากนี้ คุณได้เรียนรู้วิธีเปรียบเทียบเอกสาร Word ที่ป้องกันด้วยรหัสผ่านโดยใช้ C# คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Comparison สำหรับ .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม