เรามีความยินดีที่จะแจ้งให้ทราบถึงการเปิดตัว GroupDocs.Comparison for .NET 26.5 ซึ่งพร้อมให้ใช้งานตั้งแต่ พฤษภาคม 2026
เวอร์ชัน 26.5 ของ GroupDocs.Comparison มาพร้อมกับการปรับปรุงความแม่นยำในการเรนเดอร์ PDF, การอ่านผลการเปรียบเทียบ CSV และสเปรดชีตที่ดียิ่งขึ้น, ความสามารถใหม่ของ API สำหรับการจัดการ revision และเมตาดาต้าการเปลี่ยนแปลงของสเปรดชีต, รวมถึงโมเดลการจัดแพ็กเกจ NuGet ที่อัปเดตพร้อมการสนับสนุนหลายเฟรมเวิร์ก

การแก้ไขและการปรับปรุง

  • [Feature] การจัดแพ็กเกจ NuGet แบบหลายเฟรมเวิร์กและแพ็กเกจแยกตาม TFM (COMPARISONNET-4770)
  • [Enhancement] การเปรียบเทียบ PDF: ปรับปรุงความแม่นยำของการเรนเดอร์ย่อหน้าในโหมด Inline (COMPARISONNET-4751)
  • [Enhancement] ปรับปรุงผลการเปรียบเทียบสำหรับเอกสาร PDF ที่มีตาราง (COMPARISONNET-4763)
  • [Bug] แก้ไข ArgumentOutOfRangeException เมื่อเปรียบเทียบ PDF ที่มีตารางที่มีสไตล์ (COMPARISONNET-4762)
  • [Feature] รองรับการปล่อยทรัพยากรแบบเลือกของสตรีมที่ส่งเข้าใน RevisionHandler (COMPARISONNET-4773)
  • [Enhancement] ปรับปรุงความอ่านง่ายของผลการเปรียบเทียบ CSV ด้วยเครื่องหมายข้อความ (COMPARISONNET-4769)
  • [Feature] ขยาย ChangeInfo ด้วยคุณสมบัติของสเปรดชีต (COMPARISONNET-4767)
  • [Bug] วิธี Compare โยนข้อยกเว้นเมื่อส่งออกเป็น HTML (COMPARISONNET-4764)

ฟีเจอร์หลัก

การจัดแพ็กเกจ NuGet แบบหลายเฟรมเวิร์กและแพ็กเกจแยกตาม TFM

GroupDocs.Comparison ได้เปลี่ยนไปใช้โมเดลการจัดส่งแพ็กเกจ NuGet ที่ก้าวหน้าขึ้น ตอนนี้แพ็กเกจหลักรองรับ net462;net6.0;net8.0;net10.0 แทนที่เป้าหมายเดิม net462;netstandard2.1

นอกจากนี้ เพื่อให้ขนาดการดาวน์โหลดเล็กลง ยังมีการเผยแพร่แพ็กเกจ NuGet แยกตามเฟรมเวิร์กพร้อมกับแพ็กเกจหลัก เมื่อทำการติดตั้งแพ็กเกจที่เจาะจงตามแพลตฟอร์ม จะดาวน์โหลดไบนารีที่ตรงกับเฟรมเวิร์กเป้าหมายของผู้ใช้เท่านั้น — ไม่รวมแอสเซมบลีที่ไม่ได้ใช้

แพ็กเกจ เฟรมเวิร์กเป้าหมาย
GroupDocs.Comparison net462;net6.0;net8.0;net10.0 (ทุกเฟรมเวิร์ก)
GroupDocs.Comparison.net462 .NET Framework 4.6.2
GroupDocs.Comparison.net6 .NET 6.0
GroupDocs.Comparison.net8 .NET 8.0
GroupDocs.Comparison.net10 .NET 10.0

Note: .NET Standard 2.1 ไม่ได้รับการสนับสนุนเป็นเป้าหมายเฉพาะอีกต่อไป โปรเจกต์ที่เคยพึ่งพา netstandard2.1 ควรย้ายไปใช้หนึ่งใน TFM ที่สนับสนุนตามที่ระบุข้างต้น

รองรับการปล่อยทรัพยากรแบบเลือกของสตรีมที่ส่งเข้าใน RevisionHandler

RevisionHandler ตอนนี้รับพารามิเตอร์ leaveOpen ที่ควบคุมว่าการปล่อยทรัพยากรของสตรีมพื้นฐานจะเกิดขึ้นหรือไม่เมื่อ RevisionHandler ถูกปล่อย หากตั้งค่า leaveOpen เป็น true สตรีมจะยังคงเปิดอยู่หลังจาก RevisionHandler ถูกปล่อย ทำให้ผู้เรียกสามารถใช้งานต่อได้ ซึ่งเป็นประโยชน์ในกรณีที่วงจรชีวิตของสตรีมถูกจัดการจากภายนอก

using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);

using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
    List<RevisionInfo> revisionList = revisionHandler.GetRevisions();

    foreach (var rev in revisionList)
    {
        if (rev.Type == RevisionType.Deletion)
            rev.Action = RevisionAction.Accept;
    }

    ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
    revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}

ขยาย ChangeInfo ด้วยคุณสมบัติของสเปรดชีต

ได้เพิ่มคุณสมบัติใหม่ 3 รายการเข้าไปใน ChangeInfo เพื่อเปิดเผยเมตาดาต้าระดับสเปรดชีตสำหรับการเปลี่ยนแปลงแต่ละรายการ คุณสมบัติเหล่านี้จะถูกเติมเมื่อเปรียบเทียบไฟล์ Excel (.xlsx) และ CSV (.csv) และช่วยให้คุณระบุตำแหน่งการเปลี่ยนแปลงได้อย่างแม่นยำในตารางสเปรดชีต:

  • Row – ดัชนีแถว (เริ่มจาก 0) ของเซลล์ที่เปลี่ยนแปลง
  • Column – ดัชนีคอลัมน์ (เริ่มจาก 0) ของเซลล์ที่เปลี่ยนแปลง
  • ColumnHeader – ข้อความหัวคอลัมน์ของคอลัมน์ที่มีเซลล์เปลี่ยนแปลง (เมื่อมี)

ตัวอย่างด้านล่างแสดงวิธีเปรียบเทียบไฟล์ CSV สองไฟล์และทำการแปลงรายการเปลี่ยนแปลง (รวมคุณสมบัติสเปรดชีตใหม่) เป็น JSON:

string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";

using (var comparer = new Comparer(source))
{
    comparer.Add(target);
    var doc = comparer.Compare();
    var changes = doc.Changes;

    var json = changes.Select(c => new
    {
        id = c.Id,
        type = c.Type.ToString(),
        componentType = c.ComponentType,
        row = c.Row,
        column = c.Column,
        columnHeader = c.ColumnHeader,
        sourceText = c.SourceText,
        targetText = c.TargetText,
        text = c.Text
    });

    File.WriteAllText(outFilePathJson,
        JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}

การปรับปรุง

ปรับปรุงความอ่านง่ายของผลการเปรียบเทียบ CSV ด้วยเครื่องหมายข้อความ

ผลลัพธ์การเปรียบเทียบ CSV ตอนนี้ใช้เครื่องหมายข้อความแบบอินไลน์เพื่อทำให้เนื้อหาที่เพิ่มและลบมองเห็นได้ทันทีโดยไม่ต้องดูแบบข้างเคียง:

  • Inserted text จะถูกล้อมด้วยวงเล็บ — ตัวอย่างเช่น (new value)
  • Deleted text จะถูกล้อมด้วยวงเหลี่ยม — ตัวอย่างเช่น [old value]

วิธีรับอัปเดต

คุณสามารถรับเวอร์ชันล่าสุดได้จาก NuGet หรือดาวน์โหลดโดยตรงจาก เว็บไซต์ GroupDocs

NuGet

GroupDocs.Comparison for .NET 26.5

ดาวน์โหลดโดยตรง

ดาวน์โหลดแอสเซมบลีสำหรับทั้ง .NET และ .NET Framework จากหน้า GroupDocs.Comparison for .NET 26.5

เรียนรู้เพิ่มเติม