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

ก่อนเริ่มต้น: ข้อกำหนดและการติดตั้ง

ก่อนที่คุณจะเริ่ม, ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  • .NET 6.0 หรือใหม่กว่า ติดตั้งแล้ว.
  • IDE เช่น Visual Studio 2022.
  • บัญชี GroupDocs Cloud ที่มี ClientId และ ClientSecret.
  • เข้าถึงที่เก็บข้อมูล GroupDocs Cloud ที่ไฟล์ Excel จะถูกอัปโหลด.

ติดตั้ง SDK ผ่าน NuGet:

dotnet add package GroupDocs.Comparison-Cloud

ดาวน์โหลดแพ็กเกจล่าสุดจาก หน้ารีลีส. หลังจากการติดตั้ง ให้เพิ่มข้อมูลประจำตัวของคุณในโค้ดตามที่แสดงต่อไปนี้ คุณพร้อมแล้วที่จะเริ่มกระบวนการเปรียบเทียบ

คู่มือขั้นตอนการเปรียบเทียบไฟล์ Excel ใน .NET

ขั้นตอนต่อไปนี้แสดงวิธีเปรียบเทียบไฟล์ Excel ใน .NET ด้วย SDK.

ขั้นตอนที่ 1: โหลดเอกสารต้นฉบับและเอกสารเป้าหมาย

สร้างอ็อบเจกต์การกำหนดค่าโดยใช้ข้อมูลประจำตัวของคุณและสร้างอินสแตนซ์ของ CompareApi

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};

var compareApi = new CompareApi(config);

ขั้นตอนที่ 2: เตรียมเวิร์กบุ๊ก Excel

กำหนดอ็อบเจ็กต์ FileInfo ที่ชี้ไปยังไฟล์ XLSX แหล่งต้นทางและปลายทางที่จัดเก็บในที่เก็บข้อมูลของ GroupDocs Cloud.

var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

ขั้นตอนที่ 3: ตั้งค่าตัวเลือกและการตั้งค่าการเปรียบเทียบ

กำหนดค่าวัตถุ CompareOptions รวมถึงการตั้งค่าการเปลี่ยนแปลงโดยละเอียด.

var compareOptions = new CompareOptions
{
    SourceFile = sourceFile,
    TargetFiles = new List<FileInfo> { targetFile },
    OutputPath = "output/diff_result.xlsx",
    Settings = new Settings
    {
        ShowDeletedContent = true,
        ShowInsertedContent = true,
        ShowStyleChanges = true,
        GenerateSummaryPage = true
    }
};

สำหรับรายการการตั้งค่าครบถ้วนทั้งหมด โปรดดูที่ อ้างอิง API.

ขั้นตอนที่ 4: ดำเนินการเปรียบเทียบและประมวลผลผลลัพธ์

เรียกเมธอด Compare และอ่านข้อมูลผลลัพธ์พื้นฐาน.

var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

ขั้นตอนที่ 5: ดึงข้อมูลการเปลี่ยนแปลงโดยละเอียด

หากคุณต้องการรายงานแบบละเอียด ให้ใช้คำขอ GetChanges

var changesRequest = new GetChangesRequest
{
    SourceFile = sourceFile,
    TargetFile = targetFile,
    OutputPath = "output/detailed_changes.json"
};
var detailedChanges = compareApi.GetChanges(changesRequest);
Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");

ด้วยขั้นตอนเหล่านี้ คุณได้ทำให้กระบวนการเปรียบเทียบไฟล์ Excel ใน .NET เป็นอัตโนมัติอย่างสมบูรณ์.

เปรียบเทียบไฟล์ Excel ด้วยโปรแกรม - ตัวอย่างโค้ดเต็ม

โค้ดต่อไปนี้แสดงกระบวนการทำงานทั้งหมดตั้งแต่การกำหนดค่าไปจนถึงการจัดการผลลัพธ์

using System;
using System.Collections.Generic;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;

namespace CompareExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Set up API credentials (replace with your actual credentials)
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };

// Initialize Compare API
            var compareApi = new CompareApi(config);

// Prepare source and target Excel files (must be uploaded to GroupDocs Cloud storage beforehand)
            var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
            var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

// Define comparison options
            var compareOptions = new CompareOptions
            {
                SourceFile = sourceFile,
                TargetFiles = new List<FileInfo> { targetFile },
                OutputPath = "output/diff_result.xlsx",
                // Optional: specify that we want detailed changes for worksheets
                Settings = new Settings
                {
                    ShowDeletedContent = true,
                    ShowInsertedContent = true,
                    ShowStyleChanges = true,
                    GenerateSummaryPage = true
                }
            };

try
            {
                // Call the Compare API
                var compareResult = compareApi.Compare(compareOptions);

// Output basic result information
                Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
                Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

// Iterate through change details
                if (compareResult.Changes != null)
                {
                    foreach (var change in compareResult.Changes)
                    {
                        Console.WriteLine("--------------------------------------------------");
                        Console.WriteLine($"Change Type   : {change.ChangeType}");
                        Console.WriteLine($"Worksheet     : {change.Worksheet}");
                        Console.WriteLine($"Cell Address  : {change.CellAddress}");
                        Console.WriteLine($"Old Value     : {change.OldValue}");
                        Console.WriteLine($"New Value     : {change.NewValue}");
                        Console.WriteLine($"Is New Row    : {change.IsNewRow}");
                        Console.WriteLine($"Is New Column : {change.IsNewColumn}");
                    }
                }

// Retrieve detailed changes via GetChanges (optional)
                var changesRequest = new GetChangesRequest
                {
                    SourceFile = sourceFile,
                    TargetFile = targetFile,
                    OutputPath = "output/detailed_changes.json"
                };
                var detailedChanges = compareApi.GetChanges(changesRequest);
                Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");
            }
            catch (ApiException apiEx)
            {
                Console.WriteLine($"API error: {apiEx.ErrorCode} - {apiEx.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unexpected error: {ex.Message}");
            }
        }
    }
}

หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบว่าได้อัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ติดตั้งอย่างถูกต้อง และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ

ทำการเปรียบเทียบ Excel ผ่าน REST ด้วย cURL

คุณสามารถบรรลุผลลัพธ์เดียวกันโดยไม่ต้องเขียนโค้ด C# โดยเรียกใช้ REST API โดยตรง.

1. ยืนยันตัวตนและรับโทเค็นการเข้าถึง

curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'

2. อัปโหลดเวิร์กบุ๊กต้นฉบับ

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/source.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./source.xlsx"

3. อัปโหลดเวิร์กบุ๊กเป้าหมาย

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/target.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./target.xlsx"

4. ดำเนินการเปรียบเทียบ

curl -X POST "https://api.groupdocs.cloud/v1.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "source_file": {"file_path":"input/source.xlsx"},
           "target_files": [{"file_path":"input/target.xlsx"}],
           "output_path":"output/diff_result.xlsx",
           "settings": {
               "show_deleted_content": true,
               "show_inserted_content": true,
               "show_style_changes": true,
               "generate_summary_page": true
           }
         }'

5. ดาวน์โหลดเวิร์กบุ๊ก Diff ที่ได้ผล

curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file?path=output/diff_result.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o diff_result.xlsx

สำหรับรายการพารามิเตอร์ทั้งหมด ดูที่ เอกสาร API อย่างเป็นทางการ.

สรุป

โดยใช้ GroupDocs.Comparison Cloud SDK for .NET คุณสามารถเปรียบเทียบไฟล์ Excel ใน .NET ได้อย่างง่ายดายและรับเวิร์กบุ๊ก diff รายละเอียดที่ไฮไลท์การแก้ไขทุกอย่าง สถาปัตยกรรมแบบ REST‑based ของ SDK ช่วยให้คุณรวมการเปรียบเทียบสเปรดชีตเข้าไปในบริการ C# ใด ๆ, เว็บ API, หรืองานเบื้องหลังด้วยความพยายามน้อยที่สุด จำไว้ว่าต้องได้รับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในผลิตภัณฑ์; ใบอนุญาตชั่วคราวมีให้ที่ license page และรายละเอียดการให้ใบอนุญาตเต็มรูปแบบถูกระบุในเว็บไซต์ของผลิตภัณฑ์ เริ่มต้นอัตโนมัติการทำงาน diff ของ Excel ของคุณวันนี้และขจัดข้อผิดพลาดจากการตรวจสอบด้วยตนเอง.

FAQs

  • ฉันจะเปรียบเทียบไฟล์ Excel ใน .NET ได้อย่างไรโดยไม่ต้องเขียนโค้ดมาก?
    SDK จะจัดการงานที่ซับซ้อนให้ คุณเพียงแค่ต้องกำหนดข้อมูลประจำตัว, ชี้ไปที่ไฟล์ XLSX สองไฟล์, และเรียก compareApi.Compare. ไลบรารีจะคืนไฟล์ diff และรายการอ็อบเจกต์การเปลี่ยนแปลง.

  • ผลลัพธ์ diff ใช้รูปแบบอะไร?
    โดยค่าเริ่มต้นผลลัพธ์จะถูกบันทึกเป็นไฟล์งาน XLSX โดยคงรูปแบบต้นฉบับไว้พร้อมกับแสดงเครื่องหมายภาพสำหรับการลบ การแทรก และการเปลี่ยนแปลงสไตล์

  • สามารถเปรียบเทียบเวิร์กบุ๊ก Excel ที่ถูกป้องกันได้หรือไม่?
    ใช่. ให้ระบุรหัสผ่านในคุณสมบัติ Password ของอ็อบเจ็กต์ FileInfo. API จะปลดล็อกเวิร์กบุ๊กก่อนทำการเปรียบเทียบ.

  • ฉันต้องการใบอนุญาตสำหรับการพัฒนาและการทดสอบหรือไม่?
    คุณสามารถรับใบอนุญาตชั่วคราวได้จาก หน้าใบอนุญาต. สำหรับการใช้งานในสภาพแวดล้อมการผลิต คุณต้องซื้อใบอนุญาตเต็มตามที่อธิบายในหน้าผลิตภัณฑ์.

อ่านเพิ่มเติม