
كيفية ضغط ملفات Excel إلى ZIP في C #
يمكن أن تحتوي أرشيفات ZIP على ملفات متعددة ، تُستخدم بشكل شائع لتقليل حجم الملفات. في الوقت نفسه ، يتم ضغط كل ملف على حدة ، مما يساعد على استخراجها وإضافة ملفات جديدة دون ضغط أو فك ضغط أرشيف Zip بأكمله. في الوقت الحاضر ، زاد استخدام جداول بيانات Excel (XLSX أو XLS) في أنشطة الأعمال اليومية. في بعض الأحيان ، يمكن أن تصبح ملفات Excel كبيرة جدًا ، ولكن يمكننا تقليل حجمها عن طريق ضغطها في أرشيف ZIP. في هذه المقالة ، ستتعلم ** كيفية ضغط ملفات Excel إلى أرشيف ZIP في C # ** دون كتابة تعليمات برمجية معقدة. بصرف النظر عن ذلك ، سترى كيفية الحصول على ** تقرير تقدم الضغط ** أثناء ضغط ملفات Excel الكبيرة.
سيتم تناول النقاط التالية في هذه المقالة:
- C # .NET API لضغط ملفات Excel إلى أرشيف ZIP
- أضف ملفات XLS أو XLSX إلى ZIP في C #
- احصل على تقرير عن تقدم الضغط في C #
C # .NET API لضغط ملفات Excel إلى أرشيف ZIP
لضغط ملفات Excel في أرشيف ZIP ، سنستخدم Aspose.ZIP for .NET. تتكون واجهة برمجة التطبيقات من العديد من ميزات الأرشفة. لذلك ، يمكنك تنزيل DLL أو تثبيته باستخدام NuGet.
Install-Package Aspose.ZIP
أضف ملفات XLS أو XLSX إلى ZIP في C
افترض أن لديك عدة ملفات Excel (XLSX أو XLS) لضغطها في أرشيف ZIP. يمكنك اختيار إحدى الطرق التالية للقيام بالمهمة.
C # ضغط ملفات Excel إلى ZIP باستخدام FileStream
بهذه الطريقة ، سنستخدم فئة FileStream لإضافة ملفات إلى أرشيف ZIP باستدعاء الوظيفة Archive.CreateEntry (String، FileStream).
فيما يلي خطوات ضغط جداول بيانات Excel إلى ZIP باستخدام FileStream:
- إنشاء كائن من فئة FileStream لأرشيف ZIP الناتج.
- إنشاء كائنات FileStream لملفات Excel المراد ضغطها.
- تهيئة أرشيف فئة وتمريرها نسخة من ArchiveEntrySettings فئة.
- أضف FileStream كائنات تم إنشاؤها في الخطوة 2 باستخدام طريقة Archive.CreateEntry.
- لضغط الملفات ، استدع أسلوب Archive.Save واستخدم كائنات FileStream (تم إنشاؤه في الخطوة 1) ومثيل ArchiveSaveOptions كمعلمات.
يوضح الكود التالي كيفية ضغط ملفات Excel إلى ZIP باستخدام FileStream.
// Create FileStream for output ZIP archive | |
using (FileStream zipFile = File.Open("CompressFiles_out.zip", FileMode.Create)) | |
{ | |
// File1 to be compressed | |
using (FileStream excel_file1 = File.Open("data1.xlsx", FileMode.Open, FileAccess.Read)) | |
{ | |
// File2 to be compressed | |
using (FileStream excel_file2 = File.Open("data2.xlsx" , FileMode.Open, FileAccess.Read)) | |
{ | |
using (var archive = new Archive()) | |
{ | |
//Add files to archive. | |
archive.CreateEntry("data1.xlsx", excel_file2); | |
archive.CreateEntry("data2.xlsx", excel_file2); | |
// Compress the files into ZIP archive | |
archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII, ArchiveComment = "Two files are compressed in this archive." }); | |
} | |
} | |
} | |
} |
C # ضغط ملفات XLSX أو XLS في ZIP باستخدام FileInfo
بدلاً من ذلك ، يمكننا استخدام فئة FileInfo لإضافة ملفات إلى أرشيف ZIP. في هذه الحالة ، سيتم تحميل الملفات باستخدام فئة FileInfo وإضافتها إلى أرشيف ZIP باستدعاء طريقة Archive.CreateEntry (String، FileInfo).
يرجى اتباع الخطوات المذكورة أدناه:
- إنشاء كائن من فئة FileStream لأرشيف ZIP الناتج.
- إنشاء كائنات FileInfo لملفات Excel المراد ضغطها.
- تهيئة أرشيف فئة وتمريرها نسخة من ArchiveEntrySettings فئة.
- أضف FileStream كائنات تم إنشاؤها في الخطوة 2 باستخدام طريقة Archive.CreateEntry.
- لضغط الملفات ، استدع أسلوب Archive.Save واستخدم كائنات FileStream (تم إنشاؤه في الخطوة 1) ومثيل ArchiveSaveOptions كمعلمات.
توضح التعليمات البرمجية التالية كيفية ضغط ملفات XLSX أو XLS في ZIP باستخدام FileInfo.
//Create FileStream for output ZIP archive | |
using (FileStream zipFile = File.Open("CompressFiles_out.zip", FileMode.Create)) | |
{ | |
// Files to be compressed | |
FileInfo fi1 = new FileInfo("data1.xlsx"); | |
FileInfo fi2 = new FileInfo("data2.xlsx"); | |
using (var archive = new Archive()) | |
{ | |
//Add files to archive | |
archive.CreateEntry("data1.xlsx", fi1); | |
archive.CreateEntry("data2.xlsx", fi2); | |
// Compress the files into ZIP archive | |
archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII }); | |
} | |
} |
ضغط جداول بيانات Excel إلى ZIP باستخدام مسار الملف
أسهل طريقة هي إضافة مسار ملف Excel مباشرة إلى طريقة Archive.CreateEntry:
فيما يلي خطوات ضغط جداول بيانات Excel إلى ZIP باستخدام مسار ملف:
- تهيئة أرشيف فئة.
- اضافة ملفات اكسل باستخدام طريقة Archive.CreateEntry.
- لضغط البيانات ، استدع طريقة Archive.Save واستخدم اسم ملف الإخراج كمعامل.
توضح التعليمة البرمجية التالية كيفية ضغط ملفات جداول بيانات Excel إلى ZIP باستخدام مسار ملف.
//Create an instance of Archive class | |
using (var archive = new Archive()) | |
{ | |
//Add files using Archive.CreateEntry method | |
archive.CreateEntry("entry_name1.dat", "input_file1.dat"); | |
archive.CreateEntry("entry_name2.dat", "input_file2.dat"); | |
//Zip the files. | |
archive.Save("result_archive.zip"); | |
} |
احصل على تقرير عن تقدم الضغط في C
في حالة ملفات Excel الكبيرة ، قد تستغرق عملية الضغط وقتًا طويلاً حتى تكتمل. للتعامل معها ، توفر ** C # ZIP compression library ** حدث [CompressionProgressed] لنشر التحديثات بشكل مستمر.
فيما يلي خطوات الحصول على تقرير عن تقدم الضغط في C #:
- أنشئ كائن FileStream لملف Excel الكبير.
- تهيئة أرشيف فئة وتمريرها نسخة من ArchiveEntrySettings فئة.
- الحصول على كائن من ArchiveEntry من استدعاء الأسلوب Archive.CreateEntry.
- إرفاق [CompressionProgressed] إلى الكائن ArchiveEntry.
- اتصل بـ Archive.Save واستخدم اسم ملف الإخراج كمعامل.
يوضح نموذج التعليمات البرمجية التالي كيفية الحصول على تقرير عن تقدم الضغط في C #:
// Create large Excel file | |
using (FileStream source = File.Open("huge.bin", FileMode.Open, FileAccess.Read)) | |
{ | |
using (var archive = new Archive(new ArchiveEntrySettings(new PPMdCompressionSettings()))) | |
{ | |
// Add and file to archive | |
ArchiveEntry entry = archive.CreateEntry("huge.bin", source); | |
int percentReady = 0; | |
// Attach CompressionProgress event | |
entry.CompressionProgressed += (s, e) => | |
{ | |
int percent = (int)((100 * (long)e.ProceededBytes) / source.Length); | |
if (percent > percentReady) | |
{ | |
Console.WriteLine(string.Format("{0}% compressed", percent)); | |
percentReady = percent; | |
} | |
}; | |
// Zip the file | |
archive.Save(zipFile); | |
} | |
} |
احصل على رخصة مجانية
يمكنك الحصول على ترخيص مؤقت مجاني لاختبار واجهة برمجة التطبيقات بدون قيود التقييم.
خاتمة
في هذه المقالة ، تعلمت ** كيفية ضغط ملفات Excel إلى أرشيف ZIP في C # ** باستخدام ** مكتبة ضغط C # ZIP **. بصرف النظر عن ذلك ، لديك معرفة كافية حول الحصول على ** تقرير تقدم الضغط ** أثناء ضغط ملفات Excel الكبيرة. يمكنك زيارة الوثائق لاستكشاف الميزات الأخرى ** C # ZIP compression API **.
طرح سؤال
يمكنك إخبارنا بأسئلتك أو استفساراتك على المنتدى.