การเปรียบเทียบแผ่นงาน Excel ด้วยโปรแกรมเป็นความต้องการที่พบบ่อยเมื่อคุณต้องการตรวจจับการเปลี่ยนแปลงของข้อมูล, ตรวจสอบการแก้ไข, หรือสร้างรายงาน. GroupDocs.Comparison Cloud SDK for .NET ให้ไลบรารีที่มีพลังบนพื้นฐาน REST ซึ่งทำให้การเปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# เป็นเรื่องง่าย. คู่มือนี้จะพาคุณผ่านขั้นตอนการอัปโหลดไฟล์, การกำหนดค่าตัวเลือกการเปรียบเทียบ, การดำเนินการเปรียบเทียบ, และการดึงผลลัพธ์, พร้อมตัวอย่างโค้ด C# และ cURL.
เปรียบเทียบไฟล์ Excel ผ่าน REST ด้วย C# ใน 5 ขั้นตอน
- อัปโหลดไฟล์ XLSX แหล่งที่มา: ใช้เมธอด
StorageApi.UploadFileเพื่อวางsample1.xlsxในคลาวด์สตอเรจ。
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- อัปโหลดไฟล์ XLSX ปลายทาง: ทำการอัปโหลดซ้ำสำหรับ
sample2.xlsx。
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
- กำหนดค่าตัวเลือกการเปรียบเทียบ: สร้างอ็อบเจกต์
CompareOptionsตั้งค่าเส้นทางไฟล์แหล่งที่มาและปลายทาง กำหนดเส้นทางผลลัพธ์ และปรับการตั้งค่าเช่นGenerateSummaryPage。
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
ดูเอกสารอ้างอิง API เต็มรูปแบบสำหรับ CompareOptions และ Settings ที่ API Reference。
4. ดำเนินการเปรียบเทียบ: เรียก CompareApi.CompareDocument พร้อมกับ CompareDocumentRequest。
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
- ดาวน์โหลดผลลัพธ์และทำความสะอาด: ดึง
result.xlsxที่สร้างขึ้น, บันทึกลงในเครื่อง, และอาจลบไฟล์ระยะไกล。
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Clean up
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
ตัวอย่างโค้ดเต็ม: เปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# โดยใช้ GroupDocs.Comparison
ตัวอย่างนี้แสดงวิธีอัปโหลดไฟล์ XLSX สองไฟล์, เปรียบเทียบพวกมัน, และดาวน์โหลดผลลัพธ์ที่ไฮไลท์.
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;
using GroupDocs.Comparison.Cloud.Sdk.Model.Requests;
namespace CompareExcelFilesExample
{
class Program
{
static void Main(string[] args)
{
// Configuration – replace with your actual credentials
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
// APIs
var compareApi = new CompareApi(config);
var storageApi = new StorageApi(config);
// Local and remote file names
string localFilePath1 = "sample1.xlsx";
string localFilePath2 = "sample2.xlsx";
string remoteFilePath1 = "sample1.xlsx";
string remoteFilePath2 = "sample2.xlsx";
string remoteResultPath = "result.xlsx";
string localResultPath = "result.xlsx";
// Upload first Excel file
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
// Upload second Excel file
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
// Prepare comparison options
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
// Example: show changes in a new sheet
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
// Execute comparison
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
// Download the result file
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Optional: clean up remote files
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
Console.WriteLine("Comparison completed. Result saved to " + localResultPath);
}
}
}
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ
การเรียกใช้ Comparison REST API ด้วย cURL
ด้านล่างเป็น workflow ของ cURL ที่ทำงานเดียวกันโดยไม่ต้องเขียนโค้ด C#. แทนที่ค่าตัวแปรตำแหน่งด้วยข้อมูลประจำตัวและชื่อไฟล์จริงของคุณ
รับโทเค็นการเข้าถึง
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \ -H "Content-Type: application/json" \ -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'อัปโหลดไฟล์ XLSX ต้นฉบับ
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample1.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample1.xlsx"อัปโหลดไฟล์ XLSX ปลายทาง
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample2.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample2.xlsx"ดำเนินการเปรียบเทียบ
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source_file": {"file_path": "sample1.xlsx"}, "target_files": [{"file_path": "sample2.xlsx"}], "output_path": "result.xlsx", "settings": { "generate_summary_page": true, "show_deleted_content": true, "show_inserted_content": true } }'ดาวน์โหลดผลลัพธ์
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -o result.xlsx
สำหรับรายการเต็มของจุดสิ้นสุดและพารามิเตอร์, ดู เอกสาร API อย่างเป็นทางการ.
ข้อกำหนดเบื้องต้นและการตั้งค่า
- ติดตั้งแพ็คเกจ .NET ผ่าน NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- ตรวจสอบว่าคุณมีบัญชี GroupDocs Cloud ที่ใช้งานได้และรับ Client Id และ Client Secret ของคุณจากแดชบอร์ด.
- ต้องใช้ .NET 6.0 หรือเวอร์ชันที่ใหม่กว่า.
คุณสามารถดาวน์โหลดไลบรารีล่าสุดจาก หน้าดาวน์โหลด.
ปรับแต่งการตั้งค่าเปรียบเทียบ
อ็อบเจ็กต์ Settings ภายใน CompareOptions ช่วยให้คุณควบคุมผลลัพธ์ได้ การปรับแต่งทั่วไปรวมถึง:
- GenerateSummaryPage - เพิ่มแผ่นสรุปพร้อมสถิติการเปลี่ยนแปลง.
- ShowDeletedContent - ไฮไลต์เซลล์ที่ถูกลบ.
- ShowInsertedContent - ไฮไลต์เซลล์ที่เพิ่มใหม่.
คุณสมบัติเหล่านี้ได้ถูกใช้แล้วในตัวอย่างโค้ดข้างต้น สำหรับตัวเลือกเพิ่มเติม เช่น การป้องกันด้วย Password หรือ StyleChangeDetection ให้ดูที่ API Reference.
สรุป
การเปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# จะง่ายขึ้นอย่างมากด้วย GroupDocs.Comparison Cloud SDK for .NET. โดยทำตามขั้นตอน คุณสามารถอัปโหลดไฟล์ XLSX, กำหนดค่าการเปรียบเทียบอย่างละเอียด, เรียกใช้การเปรียบเทียบ, และดึงเวิร์กบุ๊กผลลัพธ์ที่ทำเครื่องหมายความแตกต่างอย่างชัดเจนได้. อย่าลืมรักษาความปลอดภัยของข้อมูลประจำตัว API ของคุณ, ปฏิบัติตามขีดจำกัดขนาดไฟล์, และใช้ใบอนุญาตชั่วคราวสำหรับการพัฒนา. เมื่อคุณพร้อมสำหรับการใช้งานจริง, ซื้อใบอนุญาตเต็มรูปแบบจาก หน้าราคา เพื่อเปิดใช้งานการใช้งานไม่จำกัด.
FAQs
ฉันจะเปรียบเทียบไฟล์ Excel ผ่าน REST ใน C# โดยใช้ GroupDocs.Comparison ได้อย่างไร?
ใช้ SDK เพื่ออัปโหลดไฟล์ XLSX สองไฟล์, ตั้งค่าCompareOptions, เรียกCompareDocument, และดาวน์โหลดไฟล์ผลลัพธ์. ขั้นตอนทำงานทั้งหมดแสดงในส่วนของโค้ดและ cURL ด้านบน.วิธีการตรวจสอบสิทธิ์ที่ REST API ต้องการคืออะไร?
API ใช้ OAuth 2.0 พร้อม client‑id และ client‑secret ของคุณเพื่อรับ access token ซึ่งต้องส่งในส่วนหัวAuthorization: Bearerสำหรับทุกคำขอฉันสามารถปรับแต่งการเน้นการเปลี่ยนแปลงที่แสดงในผลการเปรียบเทียบได้หรือไม่?
ใช่. ปรับวัตถุSettings(เช่นGenerateSummaryPage,ShowDeletedContent,ShowInsertedContent) เพื่อควบคุมการแสดงผลของความแตกต่าง.ใบอนุญาตชั่วคราวเพียงพอสำหรับการทดสอบหรือไม่?
ใบอนุญาตชั่วคราวจาก หน้าใบอนุญาตชั่วคราว ทำงานสำหรับการพัฒนาและการทดสอบ สำหรับการใช้งานในสภาพแวดล้อมการผลิต ควรได้รับใบอนุญาตเต็มรูปแบบ
