<?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/fa/tag/excel-comparison/</link>
    <description>Recent content in excel comparison on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    <lastBuildDate>Fri, 09 Oct 2026 14:45:06 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/fa/tag/excel-comparison/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>مقایسه فایل‌های Excel از طریق REST در C#</title>
      <link>https://blog-qa.groupdocs.cloud/fa/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/fa/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>
<p><strong>دریافت توکن دسترسی</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/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></li>
<li>
<p><strong>بارگذاری فایل XLSX منبع</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/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></li>
<li>
<p><strong>بارگذاری فایل XLSX هدف</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/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></li>
<li>
<p><strong>اجرای مقایسه</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/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></li>
<li>
<p><strong>دانلود نتیجه</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/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></li>
</ol>
<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="سؤالات-متداول">سؤالات متداول</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>روش احراز هویت مورد نیاز API REST چیست؟</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/fa/comparison/compare-excel-files-using-rest-api-in-python/">مقایسه فایل‌های Excel با استفاده از REST API در Python</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">مقایسه فایل‌های Excel و برجسته‌سازی تفاوت‌ها در Java با استفاده از REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/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/fa/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/fa/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 را از 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="گام-۲-آمادهسازی-کتابهای-کار-excel">گام ۲: آماده‌سازی کتاب‌های کار 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="مرحله۴-اجرای-مقایسه-و-پردازش-نتایج">مرحله ۴: اجرای مقایسه و پردازش نتایج</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> مراجعه کنید یا برای دریافت کمک به <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> در دسترس است و جزئیات کامل لایسنس‌گذاری در سایت محصول آمده است. امروز شروع به خودکارسازی جریان‌های کاری diff 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/">صفحه مجوز</a> دریافت شود. برای استقرارهای تولیدی باید یک مجوز کامل خریداری کنید همان‌طور که در صفحه محصول توضیح داده شده است.</p>
</li>
</ul>
<h2 id="بیشتر-بخوانید">بیشتر بخوانید</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/fa/comparison/compare-excel-files-using-rest-api-in-python/">مقایسه فایل‌های Excel با استفاده از REST API در Python</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">مقایسه فایل‌های Excel و برجسته‌سازی تفاوت‌ها در Java با استفاده از REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/fa/comparison/compare-pdf-files-using-rest-api-in-python/">مقایسه فایل‌های PDF با استفاده از REST API در Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
