Menganalisis perubahan antara versi spreadsheet adalah tugas rutin untuk keuangan, pelaporan, dan alur kerja validasi data. GroupDocs.Comparison Cloud SDK for .NET menyediakan API yang kuat yang memudahkan untuk membandingkan file Excel di .NET tanpa inspeksi manual. Dalam panduan ini Anda akan melihat cara menyiapkan pustaka, mengunggah workbook, memanggil endpoint REST dari C#, mengambil informasi perubahan yang detail, dan menyesuaikan opsi perbandingan untuk hasil yang tepat.

Sebelum Anda Memulai: Prasyarat dan Instalasi

Sebelum Anda memulai, pastikan Anda memiliki hal berikut:

  • .NET 6.0 atau yang lebih baru terpasang.
  • Sebuah IDE seperti Visual Studio 2022.
  • Akun GroupDocs Cloud dengan ClientId dan ClientSecret.
  • Akses ke penyimpanan GroupDocs Cloud tempat file Excel akan diunggah.

Instal SDK melalui NuGet:

dotnet add package GroupDocs.Comparison-Cloud

Unduh paket terbaru dari halaman rilis. Setelah instalasi, tambahkan kredensial Anda dalam kode seperti yang ditunjukkan nanti. Anda sekarang siap memulai alur kerja perbandingan.

Panduan Langkah-demi-Langkah Membandingkan File Excel di .NET

Langkah-langkah berikut menggambarkan cara membandingkan file Excel di .NET menggunakan SDK.

Langkah 1: Muat Dokumen Sumber dan Target

Buat objek konfigurasi dengan kredensial Anda dan buat instance CompareApi.

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

var compareApi = new CompareApi(config);

Langkah 2: Siapkan Buku Kerja Excel

Definisikan objek FileInfo yang menunjuk ke file sumber dan target XLSX yang disimpan di penyimpanan GroupDocs Cloud.

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

Langkah 3: Atur Opsi dan Pengaturan Perbandingan

Konfigurasikan objek CompareOptions, termasuk pengaturan perubahan yang terperinci.

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

Untuk daftar lengkap pengaturan, lihat referensi API.

Langkah 4: Jalankan Perbandingan dan Proses Hasil

Panggil metode Compare dan baca informasi hasil dasar.

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

Langkah 5: Mengambil Informasi Perubahan Rinci

Jika Anda memerlukan laporan yang terperinci, gunakan permintaan 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}");

Dengan langkah‑langkah ini, Anda telah sepenuhnya mengotomatiskan proses membandingkan file Excel di .NET.

Membandingkan File Excel Secara Programatik - Contoh Kode Lengkap

Kode berikut menunjukkan alur kerja lengkap mulai dari konfigurasi hingga penanganan hasil.

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

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.

Lakukan Perbandingan Excel via REST dengan cURL

Anda dapat mencapai hasil yang sama tanpa menulis kode C# dengan memanggil REST API secara langsung.

1. Otentikasi dan Dapatkan Token Akses

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. Unggah Buku Kerja Sumber

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. Unggah Workbook Target

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

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. Unduh Workbook Diff yang Dihasilkan

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

Untuk daftar lengkap parameter, lihat dokumentasi API resmi.

Kesimpulan

Dengan menggunakan GroupDocs.Comparison Cloud SDK for .NET, Anda dapat dengan mudah membandingkan file Excel di .NET dan memperoleh workbook diff terperinci yang menyoroti setiap modifikasi. Arsitektur berbasis REST SDK memungkinkan Anda mengintegrasikan perbandingan spreadsheet ke dalam layanan C#, web API, atau pekerjaan latar belakang apa pun dengan upaya minimal. Ingatlah untuk memperoleh lisensi yang tepat untuk penggunaan produksi; lisensi sementara tersedia di halaman lisensi dan detail lisensi lengkap tercantum di situs produk. Mulailah mengotomatisasi alur kerja diff Excel Anda hari ini dan hilangkan kesalahan inspeksi manual.

FAQs

  • Bagaimana saya dapat membandingkan file Excel di .NET tanpa menulis banyak kode?
    SDK mengabstraksi pekerjaan berat. Anda hanya perlu mengonfigurasi kredensial, menunjuk ke dua file XLSX, dan memanggil compareApi.Compare. Perpustakaan mengembalikan file diff dan daftar objek perubahan.

  • Format apa yang digunakan oleh hasil diff?
    Secara default, hasil disimpan sebagai workbook XLSX, mempertahankan tata letak asli sambil menerapkan penanda visual untuk penghapusan, penyisipan, dan perubahan gaya.

  • Apakah memungkinkan membandingkan workbook Excel yang dilindungi?
    Ya. Berikan kata sandi pada properti Password objek FileInfo. API akan membuka kunci workbook sebelum melakukan perbandingan.

  • Apakah saya memerlukan lisensi untuk pengembangan dan pengujian?
    Lisensi sementara dapat diperoleh dari halaman lisensi. Untuk penyebaran produksi, Anda harus membeli lisensi penuh seperti yang dijelaskan di halaman produk.

Baca Selengkapnya