<?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/ar/tag/excel-comparison/</link>
    <description>Recent content in excel comparison on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ar</language>
    <lastBuildDate>Fri, 09 Oct 2026 14:45:06 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/ar/tag/excel-comparison/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>قارن ملفات Excel عبر REST باستخدام C#</title>
      <link>https://blog-qa.groupdocs.cloud/ar/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/ar/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</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="استدعاء-comparison-rest-api-باستخدام-curl">استدعاء Comparison 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/">الوثائق الرسمية لواجهة برمجة التطبيقات</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>معرف العميل</strong> و <strong>سر العميل</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>ما طريقة المصادقة التي يتطلبها 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/ar/comparison/compare-excel-files-using-rest-api-in-python/">مقارنة ملفات Excel باستخدام REST API في Python</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">مقارنة ملفات Excel وتحديد الاختلافات في Java باستخدام REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/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/ar/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/ar/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> يوفر واجهة برمجة تطبيقات قوية تجعل من السهل مقارنة ملفات <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="الخطوة-2-إعداد-دفاتر-excel">الخطوة 2: إعداد دفاتر Excel</h3>
<p>حدد كائنات <code>FileInfo</code> التي تشير إلى ملفات <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> المصدر والهدف المخزنة في GroupDocs Cloud storage.</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> أو التواصل مع <a href="https://forum.groupdocs.cloud/c/comparison/12">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="إجراء-مقارنة-excel-عبر-rest-باستخدام-curl">إجراء مقارنة Excel عبر REST باستخدام cURL</h2>
<p>يمكنك تحقيق النتيجة نفسها دون كتابة كود C# عن طريق استدعاء واجهة برمجة التطبيقات REST مباشرة.</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 مفصل يبرز كل تعديل. تتيح لك بنية SDK المستندة إلى REST دمج مقارنة جداول البيانات في أي خدمة C# أو واجهة برمجة تطبيقات ويب أو مهمة خلفية بأقل جهد. تذكر أن تحصل على ترخيص مناسب للاستخدام في الإنتاج؛ ترخيص مؤقت متاح من <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحة الترخيص</a> وتفاصيل الترخيص الكامل مدرجة على موقع المنتج. ابدأ بأتمتة تدفقات عمل Excel diff اليوم وتخلص من أخطاء الفحص اليدوي.</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>كيف يمكنني مقارنة ملفات Excel في .NET دون كتابة الكثير من الشيفرة؟</strong><br>
يقوم SDK بتجريد العبء الثقيل. كل ما عليك هو تكوين بيانات الاعتماد، الإشارة إلى ملفي XLSX، واستدعاء <code>compareApi.Compare</code>. تُعيد المكتبة ملف diff وقائمة من كائنات التغيير.</p>
</li>
<li>
<p><strong>ما هو تنسيق نتيجة الفرق؟</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/ar/comparison/compare-excel-files-using-rest-api-in-python/">قارن ملفات Excel باستخدام REST API في Python</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/comparison/compare-two-excel-sheets-and-highlight-differences-using-java/">قارن ملفات Excel وتحديد الاختلافات في Java باستخدام REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/comparison/compare-pdf-files-using-rest-api-in-python/">قارن ملفات PDF باستخدام REST API في Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
