Membandingkan lembar kerja Excel secara programatik adalah kebutuhan yang sering muncul ketika Anda perlu mendeteksi perubahan data, mengaudit revisi, atau menghasilkan laporan. GroupDocs.Comparison Cloud SDK for .NET menyediakan pustaka berbasis REST yang kuat yang memudahkan membandingkan file Excel melalui REST di C#. Panduan ini memandu Anda melalui proses mengunggah file, mengonfigurasi opsi perbandingan, mengeksekusi perbandingan, dan mengambil hasilnya, dengan contoh kode C# dan cURL.

Membandingkan File Excel via REST di C# dalam 5 Langkah

  1. Unggah file sumber XLSX: Gunakan metode StorageApi.UploadFile untuk menempatkan sample1.xlsx di penyimpanan cloud.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
    var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
    storageApi.UploadFile(uploadRequest1);
}
  1. Unggah file XLSX target: Ulangi proses unggah untuk sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
    var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
    storageApi.UploadFile(uploadRequest2);
}
  1. Konfigurasikan opsi perbandingan: Buat objek CompareOptions, tetapkan jalur file sumber dan target, tentukan jalur output, serta sesuaikan pengaturan seperti 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
    }
};

Lihat referensi API lengkap untuk CompareOptions dan Settings di API Reference.
4. Jalankan perbandingan: Panggil CompareApi.CompareDocument dengan CompareDocumentRequest.

var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
  1. Unduh hasil dan bersihkan: Ambil result.xlsx yang dihasilkan, simpan secara lokal, dan secara opsional hapus file remote.
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));

Contoh Kode Lengkap: Bandingkan File Excel via REST dalam C# Menggunakan GroupDocs.Comparison

Contoh ini menunjukkan cara mengunggah dua file XLSX, membandingkannya, dan mengunduh hasil yang disorot.

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

Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan uji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.

Memanggil API REST Comparison dengan cURL

Berikut adalah alur kerja cURL yang melakukan operasi yang sama tanpa menulis kode C#. Ganti nilai placeholder dengan kredensial dan nama file Anda yang sebenarnya.

  1. Dapatkan token akses

    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. Unggah file XLSX sumber

    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. Unggah file XLSX target

    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. Jalankan perbandingan

    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. Unduh hasil

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

Untuk daftar lengkap endpoint dan parameter, lihat dokumentasi API resmi.

Prasyarat dan Penyiapan

  1. Instal paket .NET melalui NuGet:
dotnet add package GroupDocs.Comparison-Cloud
  1. Pastikan Anda memiliki akun GroupDocs Cloud yang valid dan dapatkan Client Id serta Client Secret Anda dari dasbor.
  2. .NET 6.0 atau yang lebih baru diperlukan.

Anda dapat mengunduh pustaka terbaru dari halaman unduhan.

Penyempurnaan Pengaturan Perbandingan

Objek Settings di dalam CompareOptions memungkinkan Anda mengontrol output. Penyesuaian umum meliputi:

  • GenerateSummaryPage - menambahkan lembar ringkasan dengan statistik perubahan.
  • ShowDeletedContent - menyoroti sel yang dihapus.
  • ShowInsertedContent - menyoroti sel yang baru ditambahkan.

Properti ini sudah digunakan dalam contoh kode di atas. Untuk opsi tambahan seperti perlindungan Password atau StyleChangeDetection, lihat API Reference.

Kesimpulan

Membandingkan file Excel melalui REST di C# menjadi mudah dengan GroupDocs.Comparison Cloud SDK for .NET. Dengan mengikuti langkah-langkah, Anda dapat mengunggah file XLSX, mengonfigurasi pengaturan perbandingan yang detail, menjalankan perbandingan, dan mengambil workbook hasil yang jelas menandai perbedaan. Ingatlah untuk mengamankan kredensial API Anda, menghormati batas ukuran file, dan menggunakan lisensi sementara untuk pengembangan. Saat Anda siap untuk produksi, beli lisensi penuh dari halaman harga untuk membuka penggunaan tak terbatas.

FAQs

  • Bagaimana cara membandingkan file Excel melalui REST di C# menggunakan GroupDocs.Comparison?
    Gunakan SDK untuk mengunggah dua file XLSX, atur CompareOptions, panggil CompareDocument, dan unduh file hasilnya. Alur kerja lengkap diilustrasikan dalam bagian kode dan cURL di atas.

  • Metode otentikasi apa yang dibutuhkan oleh REST API?
    API menggunakan OAuth 2.0 dengan client‑id dan client‑secret Anda untuk memperoleh token akses, yang harus dikirim dalam header Authorization: Bearer untuk setiap permintaan.

  • Apakah saya dapat menyesuaikan perubahan mana yang disorot dalam hasil perbandingan?
    Ya. Sesuaikan objek Settings (misalnya, GenerateSummaryPage, ShowDeletedContent, ShowInsertedContent) untuk mengontrol tampilan perbedaan.

  • Apakah lisensi sementara cukup untuk pengujian?
    Lisensi sementara dari halaman lisensi sementara berfungsi untuk pengembangan dan pengujian. Untuk penyebaran produksi, dapatkan lisensi penuh.

Baca Selengkapnya