Excel çalışma sayfalarını programlı olarak karşılaştırmak, veri değişikliklerini tespit etmeniz, revizyonları denetlemeniz veya raporlar oluşturmanız gerektiğinde sıkça ihtiyaç duyulan bir gereksinimdir. GroupDocs.Comparison Cloud SDK for .NET güçlü bir REST‑tabanlı kütüphane sağlayarak Excel dosyalarını C# içinde REST aracılığıyla kolayca karşılaştırmanızı sağlar. Bu kılavuz, dosyaları yükleme, karşılaştırma seçeneklerini yapılandırma, karşılaştırmayı yürütme ve sonucu alma süreçlerini, hem C# kodu hem de cURL örnekleriyle adım adım gösterir.

REST ile C#’ta Excel Dosyalarını 5 Adımda Karşılaştırma

  1. Kaynak XLSX dosyasını yükleyin: StorageApi.UploadFile metodunu kullanarak sample1.xlsx dosyasını bulut depolamaya yerleştirin.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
    var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
    storageApi.UploadFile(uploadRequest1);
}
  1. Hedef XLSX dosyasını yükleyin: sample2.xlsx için yüklemeyi tekrarlayın.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
    var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
    storageApi.UploadFile(uploadRequest2);
}
  1. Karşılaştırma seçeneklerini yapılandırın: Bir CompareOptions nesnesi oluşturun, kaynak ve hedef dosya yollarını ayarlayın, çıktı yolunu belirleyin ve GenerateSummaryPage gibi ayarları düzenleyin.
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
    }
};

Tam CompareOptions ve Settings API referansını API Referansı adresinde görebilirsiniz.
4. Karşılaştırmayı yürütün: CompareDocumentRequest ile CompareApi.CompareDocument metodunu çağırın.

var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
  1. Sonucu indirin ve temizleyin: Oluşturulan result.xlsx dosyasını alın, yerel olarak kaydedin ve isteğe bağlı olarak uzak dosyaları silin.
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));

Tam Kod Örneği: REST üzerinden C# ile GroupDocs.Comparison kullanarak Excel Dosyalarını Karşılaştırma

Bu örnek, iki XLSX dosyasını nasıl yükleyeceğinizi, karşılaştıracağınızı ve vurgulanan sonucu nasıl indireceğinizi gösterir.

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);
        }
    }
}

Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgeler adresine bakın veya destek ekibi ile iletişime geçin.

cURL ile Comparison REST API’sini Çağırma

Aşağıda, C# kodu yazmadan aynı işlemi gerçekleştiren bir cURL iş akışı bulunmaktadır. Yer tutucu değerleri gerçek kimlik bilgileriniz ve dosya adlarınızla değiştirin.

  1. Erişim belirteci alın

    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. Kaynak XLSX dosyasını yükleyin

    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. Hedef XLSX dosyasını yükleyin

    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. Karşılaştırmayı çalıştırın

    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. Sonucu indirin

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

Uç noktalar ve parametrelerin tam listesi için, resmi API belgelerine bakın.

Gereksinimler ve Kurulum

  1. NuGet aracılığıyla .NET paketini yükleyin:
dotnet add package GroupDocs.Comparison-Cloud
  1. Geçerli bir GroupDocs Cloud hesabınızın olduğundan emin olun ve kontrol panelinden Client Id ve Client Secret bilgilerinizi alın.
  2. .NET 6.0 veya daha yenisi gereklidir.

En son kütüphaneyi indirme sayfasından indirebilirsiniz.

Karşılaştırma Ayarlarını İnce Ayarlama

CompareOptions içinde bulunan Settings nesnesi, çıktıyı kontrol etmenizi sağlar. Yaygın ayarlamalar şunları içerir:

  • GenerateSummaryPage - değişiklik istatistiklerini içeren bir özet sayfası ekler.
  • ShowDeletedContent - kaldırılan hücreleri vurgular.
  • ShowInsertedContent - yeni eklenen hücreleri vurgular.

Bu özellikler zaten yukarıdaki kod örneğinde kullanılmıştır. Password koruması veya StyleChangeDetection gibi ek seçenekler için, API Referansı adresine bakın.

Sonuç

Excel dosyalarını REST üzerinden C# ile karşılaştırmak, GroupDocs.Comparison Cloud SDK for .NET sayesinde oldukça basit hale gelir. Adımları izleyerek XLSX dosyalarını yükleyebilir, ayrıntılı karşılaştırma ayarlarını yapılandırabilir, karşılaştırmayı çalıştırabilir ve farklılıkları net bir şekilde işaretleyen bir sonuç çalışma kitabını alabilirsiniz. API kimlik bilgilerinizi güvence altına almayı, dosya boyutu limitlerine uymayı ve geliştirme için geçici bir lisans kullanmayı unutmayın. Üretime geçmeye hazır olduğunuzda, sınırsız kullanım için fiyatlandırma sayfasından tam bir lisans satın alın.

FAQs

  • Excel dosyalarını REST üzerinden C# kullanarak GroupDocs.Comparison ile nasıl karşılaştırabilirim?
    SDK’yı kullanarak iki XLSX dosyasını yükleyin, CompareOptions ayarlayın, CompareDocument çağırın ve ortaya çıkan dosyayı indirin. Tam iş akışı yukarıdaki kod ve cURL bölümlerinde gösterilmiştir.

  • REST API hangi kimlik doğrulama yöntemini gerektirir?
    API, erişim belirteci almak için client‑id ve client‑secret bilgilerinizi kullanarak OAuth 2.0 kullanır; bu belirteç her istekte Authorization: Bearer başlığında gönderilmelidir.

  • Karşılaştırma sonucunda hangi değişikliklerin vurgulanacağını özelleştirebilir miyim?
    Evet. Farkların görünümünü kontrol etmek için Settings nesnesini (ör. GenerateSummaryPage, ShowDeletedContent, ShowInsertedContent) ayarlayın.

  • Geçici bir lisans test için yeterli mi?
    Geliştirme ve test için geçici lisans sayfası üzerinden alınan geçici lisans çalışır. Üretim dağıtımları için tam lisans edinin.

Daha Fazla Oku