<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>excel comparison on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/uk/tag/excel-comparison/</link>
    <description>Recent content in excel comparison on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>uk</language>
    <lastBuildDate>Fri, 09 Oct 2026 14:45:06 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/uk/tag/excel-comparison/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Порівняння Excel‑файлів через REST у C#</title>
      <link>https://blog-qa.groupdocs.cloud/uk/comparison/compare-excel-files-via-rest-in-csharp/</link>
      <pubDate>Fri, 09 Oct 2026 14:45:06 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/uk/comparison/compare-excel-files-via-rest-in-csharp/</guid>
      <description>Дізнайтеся, як порівнювати файли Excel за допомогою REST у C# з використанням GroupDocs.Comparison Cloud SDK for .NET. Дотримуйтесь стислого посібника з кодом, cURL та кроками налаштування.</description>
      <content:encoded><![CDATA[<p>Порівняння листів Excel програмно є частою вимогою, коли потрібно виявляти зміни даних, проводити аудит версій або створювати звіти. <a href="https://products.groupdocs.cloud/comparison/net/">GroupDocs.Comparison Cloud SDK for .NET</a> надає потужну бібліотеку на базі REST, яка спрощує порівняння файлів Excel через REST у C#. У цьому посібнику ви дізнаєтеся, як завантажувати файли, налаштовувати параметри порівняння, виконувати порівняння та отримувати результат, з прикладами коду на C# та cURL.</p>
<h2 id="порівняння-excel-файлів-через-rest-у-c-за-5-кроків">Порівняння Excel файлів через REST у C# за 5 кроків</h2>
<ol>
<li><strong>Завантажте вихідний файл <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a></strong>: використайте метод <code>StorageApi.UploadFile</code>, щоб розмістити <code>sample1.xlsx</code> у хмарному сховищі.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> stream1 = <span style="color:#66d9ef">new</span> FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">var</span> uploadRequest1 = <span style="color:#66d9ef">new</span> UploadFileRequest(remoteFilePath1, stream1);
</span></span><span style="display:flex;"><span>    storageApi.UploadFile(uploadRequest1);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><ol start="2">
<li><strong>Завантажте цільовий файл XLSX</strong>: повторіть завантаження для <code>sample2.xlsx</code>.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> stream2 = <span style="color:#66d9ef">new</span> FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">var</span> uploadRequest2 = <span style="color:#66d9ef">new</span> UploadFileRequest(remoteFilePath2, stream2);
</span></span><span style="display:flex;"><span>    storageApi.UploadFile(uploadRequest2);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><ol start="3">
<li><strong>Налаштуйте параметри порівняння</strong>: створіть об’єкт <code>CompareOptions</code>, вкажіть шляхи до вихідного та цільового файлів, визначте шлях виводу та налаштуйте параметри, такі як <code>GenerateSummaryPage</code>.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareOptions = <span style="color:#66d9ef">new</span> CompareOptions
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    SourceFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = remoteFilePath1 },
</span></span><span style="display:flex;"><span>    TargetFiles = <span style="color:#66d9ef">new</span> List&lt;FileInfo&gt;
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">new</span> FileInfo { FilePath = remoteFilePath2 }
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    OutputPath = remoteResultPath,
</span></span><span style="display:flex;"><span>    Settings = <span style="color:#66d9ef">new</span> Settings
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        GenerateSummaryPage = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>        ShowDeletedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>        ShowInsertedContent = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>};
</span></span></code></pre></div><p>Перегляньте повну довідку API для <code>CompareOptions</code> та <code>Settings</code> за посиланням <a href="https://reference.groupdocs.cloud/comparison/">API Reference</a>.<br>
4. <strong>Виконайте порівняння</strong>: викличте <code>CompareApi.CompareDocument</code> з <code>CompareDocumentRequest</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareRequest = <span style="color:#66d9ef">new</span> CompareDocumentRequest(compareOptions);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareResult = compareApi.CompareDocument(compareRequest);
</span></span></code></pre></div><ol start="5">
<li><strong>Завантажте результат і очистіть</strong>: отримайте згенерований <code>result.xlsx</code>, збережіть його локально та за потреби видаліть віддалені файли.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> downloadRequest = <span style="color:#66d9ef">new</span> DownloadFileRequest(compareResult.Path);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> resultStream = storageApi.DownloadFile(downloadRequest))
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> fileStream = <span style="color:#66d9ef">new</span> FileStream(localResultPath, FileMode.Create, FileAccess.Write))
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    resultStream.CopyTo(fileStream);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Clean up</span>
</span></span><span style="display:flex;"><span>storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteFilePath1));
</span></span><span style="display:flex;"><span>storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteFilePath2));
</span></span><span style="display:flex;"><span>storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteResultPath));
</span></span></code></pre></div><h2 id="повний-приклад-коду-порівняння-файлів-excel-через-rest-у-c-за-допомогою-groupdocscomparison">Повний приклад коду: Порівняння файлів Excel через REST у C# за допомогою GroupDocs.Comparison</h2>
<p>Цей приклад демонструє, як завантажити два файли XLSX, порівняти їх і завантажити результат з підсвічуванням.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.IO;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Model.Requests;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> CompareExcelFilesExample
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main(<span style="color:#66d9ef">string</span>[] args)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Configuration – replace with your actual credentials</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>                ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// APIs</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareApi = <span style="color:#66d9ef">new</span> CompareApi(config);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> storageApi = <span style="color:#66d9ef">new</span> StorageApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Local and remote file names</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> localFilePath1 = <span style="color:#e6db74">&#34;sample1.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> localFilePath2 = <span style="color:#e6db74">&#34;sample2.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> remoteFilePath1 = <span style="color:#e6db74">&#34;sample1.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> remoteFilePath2 = <span style="color:#e6db74">&#34;sample2.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> remoteResultPath = <span style="color:#e6db74">&#34;result.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">string</span> localResultPath = <span style="color:#e6db74">&#34;result.xlsx&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Upload first Excel file</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> stream1 = <span style="color:#66d9ef">new</span> FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> uploadRequest1 = <span style="color:#66d9ef">new</span> UploadFileRequest(remoteFilePath1, stream1);
</span></span><span style="display:flex;"><span>                storageApi.UploadFile(uploadRequest1);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Upload second Excel file</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> stream2 = <span style="color:#66d9ef">new</span> FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> uploadRequest2 = <span style="color:#66d9ef">new</span> UploadFileRequest(remoteFilePath2, stream2);
</span></span><span style="display:flex;"><span>                storageApi.UploadFile(uploadRequest2);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare comparison options</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareOptions = <span style="color:#66d9ef">new</span> CompareOptions
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                SourceFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = remoteFilePath1 },
</span></span><span style="display:flex;"><span>                TargetFiles = <span style="color:#66d9ef">new</span> List&lt;FileInfo&gt;
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">new</span> FileInfo { FilePath = remoteFilePath2 }
</span></span><span style="display:flex;"><span>                },
</span></span><span style="display:flex;"><span>                OutputPath = remoteResultPath,
</span></span><span style="display:flex;"><span>                Settings = <span style="color:#66d9ef">new</span> Settings
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#75715e">// Example: show changes in a new sheet</span>
</span></span><span style="display:flex;"><span>                    GenerateSummaryPage = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                    ShowDeletedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                    ShowInsertedContent = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Execute comparison</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareRequest = <span style="color:#66d9ef">new</span> CompareDocumentRequest(compareOptions);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareResult = compareApi.CompareDocument(compareRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Download the result file</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> downloadRequest = <span style="color:#66d9ef">new</span> DownloadFileRequest(compareResult.Path);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> resultStream = storageApi.DownloadFile(downloadRequest))
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">using</span> (<span style="color:#66d9ef">var</span> fileStream = <span style="color:#66d9ef">new</span> FileStream(localResultPath, FileMode.Create, FileAccess.Write))
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                resultStream.CopyTo(fileStream);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Optional: clean up remote files</span>
</span></span><span style="display:flex;"><span>            storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteFilePath1));
</span></span><span style="display:flex;"><span>            storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteFilePath2));
</span></span><span style="display:flex;"><span>            storageApi.DeleteFile(<span style="color:#66d9ef">new</span> DeleteFileRequest(remoteResultPath));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">&#34;Comparison completed. Result saved to &#34;</span> + localResultPath);
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><blockquote>
<p><strong>Примітка:</strong> Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, чи всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до <a href="https://docs.groupdocs.cloud/comparison/">офіційної документації</a> або зв’яжіться з <a href="https://forum.groupdocs.cloud/c/comparison/12">командою підтримки</a> для отримання допомоги.</p>
</blockquote>
<h2 id="виклик-rest-api-порівняння-за-допомогою-curl">Виклик REST API порівняння за допомогою cURL</h2>
<p>Нижче наведено робочий процес cURL, який виконує ту ж операцію без написання коду C#. Замініть заповнювачі реальними обліковими даними та іменами файлів.</p>
<ol>
<li><strong>Отримати токен доступу</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/oauth2/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><ol start="2">
<li><strong>Завантажити вихідний файл XLSX</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/sample1.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary <span style="color:#e6db74">&#34;@sample1.xlsx&#34;</span>
</span></span></code></pre></div><ol start="3">
<li><strong>Завантажити цільовий файл XLSX</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/sample2.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary <span style="color:#e6db74">&#34;@sample2.xlsx&#34;</span>
</span></span></code></pre></div><ol start="4">
<li><strong>Запустити порівняння</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/comparison/compare&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;source_file&#34;: {&#34;file_path&#34;: &#34;sample1.xlsx&#34;},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;target_files&#34;: [{&#34;file_path&#34;: &#34;sample2.xlsx&#34;}],
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;output_path&#34;: &#34;result.xlsx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;settings&#34;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;generate_summary_page&#34;: true,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;show_deleted_content&#34;: true,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;show_inserted_content&#34;: true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           }
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><ol start="5">
<li><strong>Завантажити результат</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o result.xlsx
</span></span></code></pre></div><p>Для повного списку кінцевих точок і параметрів перегляньте <a href="https://docs.groupdocs.cloud/comparison/">офіційну документацію API</a>.</p>
<h2 id="передумови-та-налаштування">Передумови та налаштування</h2>
<ol>
<li>Встановіть пакет .NET через NuGet:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.Comparison-Cloud
</span></span></code></pre></div><ol start="2">
<li>Переконайтеся, що у вас є дійсний обліковий запис GroupDocs Cloud і отримайте ваші <strong>Client Id</strong> та <strong>Client Secret</strong> з панелі управління.</li>
<li>Потрібен .NET 6.0 або новіший.</li>
</ol>
<p>Ви можете завантажити останню бібліотеку зі <a href="https://releases.groupdocs.cloud/comparison/net/">сторінки завантаження</a>.</p>
<h2 id="тонке-налаштування-параметрів-порівняння">Тонке налаштування параметрів порівняння</h2>
<p>Об’єкт <code>Settings</code> у <code>CompareOptions</code> дозволяє керувати вихідними даними. Загальні налаштування включають:</p>
<ul>
<li><strong>GenerateSummaryPage</strong> - додає лист підсумку зі статистикою змін.</li>
<li><strong>ShowDeletedContent</strong> - підсвічує клітинки, які були видалені.</li>
<li><strong>ShowInsertedContent</strong> - підсвічує новододані клітинки.</li>
</ul>
<p>Ці властивості вже використані у наведеному вище прикладі коду. Для додаткових параметрів, таких як захист <code>Password</code> або <code>StyleChangeDetection</code>, зверніться до <a href="https://reference.groupdocs.cloud/comparison/">API довідка</a>.</p>
<h2 id="висновок">Висновок</h2>
<p>Порівняння Excel‑файлів через REST у C# стає простим завдяки <a href="https://products.groupdocs.cloud/comparison/net/">GroupDocs.Comparison Cloud SDK for .NET</a>. Дотримуючись кроків, ви можете завантажити файли XLSX, налаштувати детальні параметри порівняння, виконати порівняння та отримати результуючу книгу, яка чітко позначає відмінності. Пам’ятайте про захист ваших API‑облікових даних, дотримання обмежень розміру файлів і використання тимчасової ліцензії під час розробки. Коли ви будете готові до продакшн‑режиму, придбайте повну ліцензію на <a href="https://purchase.groupdocs.cloud/temporary-license/">сторінці цін</a>, щоб розблокувати необмежене використання.</p>
<h2 id="faq">FAQ</h2>
<ul>
<li>
<p><strong>Як порівняти файли Excel за допомогою REST у C# з використанням GroupDocs.Comparison?</strong><br>
Використовуйте SDK для завантаження двох файлів XLSX, встановіть <code>CompareOptions</code>, викличте <code>CompareDocument</code> і завантажте отриманий файл. Повний процес показано у розділах коду та cURL вище.</p>
</li>
<li>
<p><strong>Який метод автентифікації вимагає REST API?</strong><br>
API використовує OAuth 2.0 з вашим client‑id та client‑secret для отримання токену доступу, який повинен бути переданий у заголовку <code>Authorization: Bearer</code> для кожного запиту.</p>
</li>
<li>
<p><strong>Чи можу я налаштувати, які зміни підсвічуються у результаті порівняння?</strong><br>
Так. Налаштуйте об’єкт <code>Settings</code> (наприклад, <code>GenerateSummaryPage</code>, <code>ShowDeletedContent</code>, <code>ShowInsertedContent</code>), щоб контролювати вигляд відмінностей.</p>
</li>
<li>
<p><strong>Чи достатня тимчасова ліцензія для тестування?</strong><br>
Тимчасова ліцензія зі <a href="https://purchase.groupdocs.cloud/temporary-license/">сторінки тимчасової ліцензії</a> підходить для розробки та тестування. Для продакшн‑розгортань необхідно отримати повну ліцензію.</p>
</li>
</ul>
<h2 id="читати-далі">Читати далі</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-excel-files-using-rest-api-in-python/">Порівняння файлів Excel за допомогою REST API у Python</a></li>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">Порівняння файлів Excel і виділення відмінностей у Java за допомогою REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-pdf-files-using-rest-api-in-python/">Порівняння файлів PDF за допомогою REST API у Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Порівняння Excel‑файлів через REST у C#</title>
      <link>https://blog-qa.groupdocs.cloud/uk/comparison/compare-excel-files-via-rest-in-csharp/</link>
      <pubDate>Mon, 21 Sep 2026 11:32:39 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/uk/comparison/compare-excel-files-via-rest-in-csharp/</guid>
      <description>Дізнайтеся, як порівнювати файли Excel у .NET за допомогою GroupDocs.Comparison Cloud SDK. У цьому посібнику показано інтеграцію REST, код C#, команди cURL та поради.</description>
      <content:encoded><![CDATA[<p>Аналіз змін між версіями електронних таблиць є рутинним завданням для фінансів, звітності та процесів перевірки даних. <a href="https://products.groupdocs.cloud/comparison/net/">GroupDocs.Comparison Cloud SDK for .NET</a> надає потужний API, який спрощує порівняння файлів <a href="https://docs.fileformat.com/spreadsheet/xlsx/">Excel</a> у .NET без ручної перевірки. У цьому посібнику ви дізнаєтеся, як налаштувати бібліотеку, завантажити робочі книги, викликати REST‑endpoint з C#, отримати детальну інформацію про зміни та точно налаштувати параметри порівняння для отримання точних результатів.</p>
<h2 id="перш-ніж-почати-вимоги-та-встановлення">Перш ніж почати: вимоги та встановлення</h2>
<p>Перш ніж розпочати, переконайтеся, що у вас є наступне:</p>
<ul>
<li>.NET 6.0 або новіша версія встановлена.</li>
<li>IDE, наприклад Visual Studio 2022.</li>
<li>Обліковий запис GroupDocs Cloud з <strong>ClientId</strong> та <strong>ClientSecret</strong>.</li>
<li>Доступ до сховища GroupDocs Cloud, куди будуть завантажені файли Excel.</li>
</ul>
<p>Встановіть SDK через NuGet:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.Comparison-Cloud
</span></span></code></pre></div><p>Завантажте останній пакет зі <a href="https://releases.groupdocs.cloud/comparison/net/">сторінки випуску</a>. Після встановлення додайте ваші облікові дані у коді, як показано далі. Тепер ви готові розпочати процес порівняння.</p>
<h2 id="покроковий-посібник-з-порівняння-excelфайлів-у-net">Покроковий посібник з порівняння Excel‑файлів у .NET</h2>
<p>Наступні кроки ілюструють, як порівняти файли Excel у .NET за допомогою SDK.</p>
<h3 id="крок-1-завантажте-вихідний-та-цільовий-документи">Крок 1: Завантажте вихідний та цільовий документи</h3>
<p>Створіть об’єкт конфігурації з вашими обліковими даними та створіть екземпляр <code>CompareApi</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>    ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareApi = <span style="color:#66d9ef">new</span> CompareApi(config);
</span></span></code></pre></div><h3 id="крок-2-підготуйте-excel-книги">Крок 2: Підготуйте Excel книги</h3>
<p>Визначте об’єкти <code>FileInfo</code>, які вказують на вихідні та цільові файли <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> у сховищі GroupDocs Cloud.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> sourceFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = <span style="color:#e6db74">&#34;input/source.xlsx&#34;</span> };
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> targetFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = <span style="color:#e6db74">&#34;input/target.xlsx&#34;</span> };
</span></span></code></pre></div><h3 id="крок-3-встановити-параметри-та-налаштування-порівняння">Крок 3: Встановити параметри та налаштування порівняння</h3>
<p>Налаштуйте об’єкт <code>CompareOptions</code>, включаючи детальні налаштування змін.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareOptions = <span style="color:#66d9ef">new</span> CompareOptions
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    SourceFile = sourceFile,
</span></span><span style="display:flex;"><span>    TargetFiles = <span style="color:#66d9ef">new</span> List&lt;FileInfo&gt; { targetFile },
</span></span><span style="display:flex;"><span>    OutputPath = <span style="color:#e6db74">&#34;output/diff_result.xlsx&#34;</span>,
</span></span><span style="display:flex;"><span>    Settings = <span style="color:#66d9ef">new</span> Settings
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        ShowDeletedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>        ShowInsertedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>        ShowStyleChanges = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>        GenerateSummaryPage = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>};
</span></span></code></pre></div><p>Для повного списку налаштувань зверніться до <a href="https://reference.groupdocs.cloud/comparison/">довідка API</a>.</p>
<h3 id="крок-4-виконати-порівняння-та-обробити-результати">Крок 4: Виконати порівняння та обробити результати</h3>
<p>Викличте метод <code>Compare</code> і прочитайте базову інформацію про результат.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> compareResult = compareApi.Compare(compareOptions);
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Comparison completed. Result file: {compareResult.Path}&#34;</span>);
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Number of changes detected: {compareResult.Changes?.Count ?? 0}&#34;</span>);
</span></span></code></pre></div><h3 id="крок-5-отримати-докладну-інформацію-про-зміни">Крок 5: Отримати докладну інформацію про зміни</h3>
<p>Якщо вам потрібен детальний звіт, використовуйте запит <code>GetChanges</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> changesRequest = <span style="color:#66d9ef">new</span> GetChangesRequest
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    SourceFile = sourceFile,
</span></span><span style="display:flex;"><span>    TargetFile = targetFile,
</span></span><span style="display:flex;"><span>    OutputPath = <span style="color:#e6db74">&#34;output/detailed_changes.json&#34;</span>
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> detailedChanges = compareApi.GetChanges(changesRequest);
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Detailed changes saved to: {detailedChanges.Path}&#34;</span>);
</span></span></code></pre></div><p>За допомогою цих кроків ви повністю автоматизували процес порівняння Excel‑файлів у .NET.</p>
<h2 id="порівняння-excel-файлів-програмно---повний-приклад-коду">Порівняння Excel файлів програмно - Повний приклад коду</h2>
<p>Наступний код демонструє повний процес роботи від налаштування до обробки результату.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Comparison.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> CompareExcelDemo
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main(<span style="color:#66d9ef">string</span>[] args)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Set up API credentials (replace with your actual credentials)</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>                ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize Compare API</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareApi = <span style="color:#66d9ef">new</span> CompareApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Prepare source and target Excel files (must be uploaded to GroupDocs Cloud storage beforehand)</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> sourceFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = <span style="color:#e6db74">&#34;input/source.xlsx&#34;</span> };
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> targetFile = <span style="color:#66d9ef">new</span> FileInfo { FilePath = <span style="color:#e6db74">&#34;input/target.xlsx&#34;</span> };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Define comparison options</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> compareOptions = <span style="color:#66d9ef">new</span> CompareOptions
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                SourceFile = sourceFile,
</span></span><span style="display:flex;"><span>                TargetFiles = <span style="color:#66d9ef">new</span> List&lt;FileInfo&gt; { targetFile },
</span></span><span style="display:flex;"><span>                OutputPath = <span style="color:#e6db74">&#34;output/diff_result.xlsx&#34;</span>,
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// Optional: specify that we want detailed changes for worksheets</span>
</span></span><span style="display:flex;"><span>                Settings = <span style="color:#66d9ef">new</span> Settings
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    ShowDeletedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                    ShowInsertedContent = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                    ShowStyleChanges = <span style="color:#66d9ef">true</span>,
</span></span><span style="display:flex;"><span>                    GenerateSummaryPage = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// Call the Compare API</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> compareResult = compareApi.Compare(compareOptions);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Output basic result information</span>
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Comparison completed. Result file: {compareResult.Path}&#34;</span>);
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Number of changes detected: {compareResult.Changes?.Count ?? 0}&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Iterate through change details</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">if</span> (compareResult.Changes != <span style="color:#66d9ef">null</span>)
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">foreach</span> (<span style="color:#66d9ef">var</span> change <span style="color:#66d9ef">in</span> compareResult.Changes)
</span></span><span style="display:flex;"><span>                    {
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">&#34;--------------------------------------------------&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Change Type   : {change.ChangeType}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Worksheet     : {change.Worksheet}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Cell Address  : {change.CellAddress}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Old Value     : {change.OldValue}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;New Value     : {change.NewValue}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Is New Row    : {change.IsNewRow}&#34;</span>);
</span></span><span style="display:flex;"><span>                        Console.WriteLine(<span style="color:#e6db74">$&#34;Is New Column : {change.IsNewColumn}&#34;</span>);
</span></span><span style="display:flex;"><span>                    }
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Retrieve detailed changes via GetChanges (optional)</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> changesRequest = <span style="color:#66d9ef">new</span> GetChangesRequest
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    SourceFile = sourceFile,
</span></span><span style="display:flex;"><span>                    TargetFile = targetFile,
</span></span><span style="display:flex;"><span>                    OutputPath = <span style="color:#e6db74">&#34;output/detailed_changes.json&#34;</span>
</span></span><span style="display:flex;"><span>                };
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> detailedChanges = compareApi.GetChanges(changesRequest);
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Detailed changes saved to: {detailedChanges.Path}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (ApiException apiEx)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;API error: {apiEx.ErrorCode} - {apiEx.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (Exception ex)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.WriteLine(<span style="color:#e6db74">$&#34;Unexpected error: {ex.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><blockquote>
<p><strong>Примітка:</strong> Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до <a href="https://docs.groupdocs.cloud/comparison/">офіційної документації</a> або зв&rsquo;яжіться з <a href="https://forum.groupdocs.cloud/c/comparison/12">командою підтримки</a> для отримання допомоги.</p>
</blockquote>
<h2 id="виконайте-порівняння-excel-за-допомогою-rest-з-curl">Виконайте порівняння Excel за допомогою REST з cURL</h2>
<p>Ви можете досягти того ж результату, не пишучи код C#, викликавши REST API безпосередньо.</p>
<p><strong>1. Аутентифікація та отримання токену доступу</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/oauth2/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,&#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;}&#39;</span>
</span></span></code></pre></div><p><strong>2. Завантажте вихідну книгу</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/storage/file?path=input/source.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -T <span style="color:#e6db74">&#34;./source.xlsx&#34;</span>
</span></span></code></pre></div><p><strong>3. Завантажте цільову книгу</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/storage/file?path=input/target.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -T <span style="color:#e6db74">&#34;./target.xlsx&#34;</span>
</span></span></code></pre></div><p><strong>4. Виконати порівняння</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/comparison/compare&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;source_file&#34;: {&#34;file_path&#34;:&#34;input/source.xlsx&#34;},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;target_files&#34;: [{&#34;file_path&#34;:&#34;input/target.xlsx&#34;}],
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;output_path&#34;:&#34;output/diff_result.xlsx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;settings&#34;: {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;show_deleted_content&#34;: true,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;show_inserted_content&#34;: true,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;show_style_changes&#34;: true,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">               &#34;generate_summary_page&#34;: true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           }
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><p><strong>5. Завантажте отриману робочу книгу diff</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/storage/file?path=output/diff_result.xlsx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o diff_result.xlsx
</span></span></code></pre></div><p>Для повного списку параметрів перегляньте <a href="https://docs.groupdocs.cloud/comparison/">офіційну документацію API</a>.</p>
<h2 id="висновок">Висновок</h2>
<p>Використовуючи <strong>GroupDocs.Comparison Cloud SDK for .NET</strong>, ви можете легко порівнювати Excel‑файли у .NET та отримувати детальну diff‑книгу, яка підсвічує кожну зміну. REST‑орієнтована архітектура SDK дозволяє інтегрувати порівняння електронних таблиць у будь‑який C# сервіс, веб‑API або фонове завдання з мінімальними зусиллями. Не забудьте отримати належну ліцензію для використання у продакшн‑режимі; тимчасова ліцензія доступна на <a href="https://purchase.groupdocs.cloud/temporary-license/">сторінці ліцензування</a>, а повна інформація про ліцензування розміщена на сайті продукту. Почніть автоматизувати ваші процеси порівняння Excel вже сьогодні та усуньте помилки ручної перевірки.</p>
<h2 id="питання-та-відповіді">Питання та відповіді</h2>
<ul>
<li>
<p><strong>Як я можу порівняти Excel файли в .NET без написання великої кількості коду?</strong><br>
SDK абстрагує складну роботу. Вам потрібно лише налаштувати облікові дані, вказати два файли XLSX і викликати <code>compareApi.Compare</code>. Бібліотека повертає файл diff і список об’єктів змін.</p>
</li>
<li>
<p><strong>Який формат використовується для результату diff?</strong><br>
За замовчуванням результат зберігається у вигляді книги XLSX, зберігаючи оригінальне розташування та додаючи візуальні маркери для видалень, вставок і змін стилю.</p>
</li>
<li>
<p><strong>Чи можливо порівнювати захищені робочі книги Excel?</strong><br>
Так. Вкажіть пароль у властивості <code>Password</code> об’єкта <code>FileInfo</code>. API розблокує робочу книгу перед виконанням порівняння.</p>
</li>
<li>
<p><strong>Чи потрібна мені ліцензія для розробки та тестування?</strong><br>
Тимчасову ліцензію можна отримати на <a href="https://purchase.groupdocs.cloud/temporary-license/">license page</a>. Для виробничих розгортань вам потрібно придбати повну ліцензію, як описано на сторінці продукту.</p>
</li>
</ul>
<h2 id="читати-далі">Читати далі</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-excel-files-using-rest-api-in-python/">Порівняння файлів Excel за допомогою REST API у Python</a></li>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">Порівняння файлів Excel та виділення відмінностей у Java за допомогою REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/uk/comparison/compare-pdf-files-using-rest-api-in-python/">Порівняння файлів PDF за допомогою REST API у Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
