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

เปรียบเทียบไฟล์ Excel ผ่าน REST ด้วย C# ใน 5 ขั้นตอน

  1. อัปโหลดไฟล์ XLSX แหล่งที่มา: ใช้เมธอด StorageApi.UploadFile เพื่อวาง sample1.xlsx ในคลาวด์สตอเรจ。
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
    var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
    storageApi.UploadFile(uploadRequest1);
}
  1. อัปโหลดไฟล์ XLSX ปลายทาง: ทำการอัปโหลดซ้ำสำหรับ sample2.xlsx。
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
    var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
    storageApi.UploadFile(uploadRequest2);
}
  1. กำหนดค่าตัวเลือกการเปรียบเทียบ: สร้างอ็อบเจกต์ CompareOptions ตั้งค่าเส้นทางไฟล์แหล่งที่มาและปลายทาง กำหนดเส้นทางผลลัพธ์ และปรับการตั้งค่าเช่น GenerateSummaryPage。
var compareOptions = new CompareOptions
{
    SourceFile = new FileInfo { FilePath = remoteFilePath1 },
    TargetFiles = new List<FileInfo>
    {
        new FileInfo { FilePath = remoteFilePath2 }
    },
    OutputPath = remoteResultPath,
    Settings = new Settings
    {
        GenerateSummaryPage = true,
        ShowDeletedContent = true,
        ShowInsertedContent = true
    }
};

ดูเอกสารอ้างอิง API เต็มรูปแบบสำหรับ CompareOptions และ Settings ที่ API Reference。
4. ดำเนินการเปรียบเทียบ: เรียก CompareApi.CompareDocument พร้อมกับ CompareDocumentRequest。

var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
  1. ดาวน์โหลดผลลัพธ์และทำความสะอาด: ดึง result.xlsx ที่สร้างขึ้น, บันทึกลงในเครื่อง, และอาจลบไฟล์ระยะไกล。
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
    resultStream.CopyTo(fileStream);
}

// Clean up
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));

ตัวอย่างโค้ดเต็ม: เปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# โดยใช้ GroupDocs.Comparison

ตัวอย่างนี้แสดงวิธีอัปโหลดไฟล์ XLSX สองไฟล์, เปรียบเทียบพวกมัน, และดาวน์โหลดผลลัพธ์ที่ไฮไลท์.

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

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

// APIs
            var compareApi = new CompareApi(config);
            var storageApi = new StorageApi(config);

// Local and remote file names
            string localFilePath1 = "sample1.xlsx";
            string localFilePath2 = "sample2.xlsx";
            string remoteFilePath1 = "sample1.xlsx";
            string remoteFilePath2 = "sample2.xlsx";
            string remoteResultPath = "result.xlsx";
            string localResultPath = "result.xlsx";

// Upload first Excel file
            using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
            {
                var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
                storageApi.UploadFile(uploadRequest1);
            }

// Upload second Excel file
            using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
            {
                var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
                storageApi.UploadFile(uploadRequest2);
            }

// Prepare comparison options
            var compareOptions = new CompareOptions
            {
                SourceFile = new FileInfo { FilePath = remoteFilePath1 },
                TargetFiles = new List<FileInfo>
                {
                    new FileInfo { FilePath = remoteFilePath2 }
                },
                OutputPath = remoteResultPath,
                Settings = new Settings
                {
                    // Example: show changes in a new sheet
                    GenerateSummaryPage = true,
                    ShowDeletedContent = true,
                    ShowInsertedContent = true
                }
            };

// Execute comparison
            var compareRequest = new CompareDocumentRequest(compareOptions);
            var compareResult = compareApi.CompareDocument(compareRequest);

// Download the result file
            var downloadRequest = new DownloadFileRequest(compareResult.Path);
            using (var resultStream = storageApi.DownloadFile(downloadRequest))
            using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
            {
                resultStream.CopyTo(fileStream);
            }

// Optional: clean up remote files
            storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
            storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
            storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));

Console.WriteLine("Comparison completed. Result saved to " + localResultPath);
        }
    }
}

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

การเรียกใช้ Comparison REST API ด้วย cURL

ด้านล่างเป็น workflow ของ cURL ที่ทำงานเดียวกันโดยไม่ต้องเขียนโค้ด C#. แทนที่ค่าตัวแปรตำแหน่งด้วยข้อมูลประจำตัวและชื่อไฟล์จริงของคุณ

  1. รับโทเค็นการเข้าถึง

    curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
         -H "Content-Type: application/json" \
         -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
    
  2. อัปโหลดไฟล์ XLSX ต้นฉบับ

    curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample1.xlsx" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \
         --data-binary "@sample1.xlsx"
    
  3. อัปโหลดไฟล์ XLSX ปลายทาง

    curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample2.xlsx" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \
         --data-binary "@sample2.xlsx"
    
  4. ดำเนินการเปรียบเทียบ

    curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
               "source_file": {"file_path": "sample1.xlsx"},
               "target_files": [{"file_path": "sample2.xlsx"}],
               "output_path": "result.xlsx",
               "settings": {
                   "generate_summary_page": true,
                   "show_deleted_content": true,
                   "show_inserted_content": true
               }
             }'
    
  5. ดาวน์โหลดผลลัพธ์

    curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -o result.xlsx
    

สำหรับรายการเต็มของจุดสิ้นสุดและพารามิเตอร์, ดู เอกสาร API อย่างเป็นทางการ.

ข้อกำหนดเบื้องต้นและการตั้งค่า

  1. ติดตั้งแพ็คเกจ .NET ผ่าน NuGet:
dotnet add package GroupDocs.Comparison-Cloud
  1. ตรวจสอบว่าคุณมีบัญชี GroupDocs Cloud ที่ใช้งานได้และรับ Client Id และ Client Secret ของคุณจากแดชบอร์ด.
  2. ต้องใช้ .NET 6.0 หรือเวอร์ชันที่ใหม่กว่า.

คุณสามารถดาวน์โหลดไลบรารีล่าสุดจาก หน้าดาวน์โหลด.

ปรับแต่งการตั้งค่าเปรียบเทียบ

อ็อบเจ็กต์ Settings ภายใน CompareOptions ช่วยให้คุณควบคุมผลลัพธ์ได้ การปรับแต่งทั่วไปรวมถึง:

  • GenerateSummaryPage - เพิ่มแผ่นสรุปพร้อมสถิติการเปลี่ยนแปลง.
  • ShowDeletedContent - ไฮไลต์เซลล์ที่ถูกลบ.
  • ShowInsertedContent - ไฮไลต์เซลล์ที่เพิ่มใหม่.

คุณสมบัติเหล่านี้ได้ถูกใช้แล้วในตัวอย่างโค้ดข้างต้น สำหรับตัวเลือกเพิ่มเติม เช่น การป้องกันด้วย Password หรือ StyleChangeDetection ให้ดูที่ API Reference.

สรุป

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

FAQs

  • ฉันจะเปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# โดยใช้ GroupDocs.Comparison ได้อย่างไร?
    ใช้ SDK เพื่ออัปโหลดไฟล์ XLSX สองไฟล์, ตั้งค่า CompareOptions, เรียก CompareDocument, และดาวน์โหลดไฟล์ผลลัพธ์. ขั้นตอนทำงานทั้งหมดแสดงในส่วนของโค้ดและ cURL ด้านบน.

  • วิธีการตรวจสอบสิทธิ์ที่ REST API ต้องการคืออะไร?
    API ใช้ OAuth 2.0 พร้อม client‑id และ client‑secret ของคุณเพื่อรับ access token ซึ่งต้องส่งในส่วนหัว Authorization: Bearer สำหรับทุกคำขอ

  • ฉันสามารถปรับแต่งการเน้นการเปลี่ยนแปลงที่แสดงในผลการเปรียบเทียบได้หรือไม่?
    ใช่. ปรับวัตถุ Settings (เช่น GenerateSummaryPage, ShowDeletedContent, ShowInsertedContent) เพื่อควบคุมการแสดงผลของความแตกต่าง.

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

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