دمج الخلايا في نطاق مسمى في Excel

مقدمة

عند العمل مع ملفات Excel برمجيًا، فإن إحدى المهام الشائعة التي قد تواجهها هي دمج الخلايا داخل نطاق مسمى. سواء كنت تقوم بأتمتة إنشاء التقارير أو إنشاء لوحات معلومات أو ببساطة إدارة مجموعات بيانات كبيرة، فإن دمج الخلايا يعد تقنية أساسية. في هذا البرنامج التعليمي، سنستكشف كيفية دمج الخلايا في نطاق مسمى باستخدام Aspose.Cells for .NET—وهي مكتبة قوية تتيح للمطورين التعامل مع ملفات Excel دون الحاجة إلى تثبيت Microsoft Excel.

المتطلبات الأساسية

قبل أن نبدأ، تأكد من أن لديك ما يلي جاهزًا:

  • Aspose.Cells لـ .NET: يمكنك تنزيله منصفحة إصدارات Aspose.Cells.
  • تم تثبيت .NET Framework على جهازك.
  • الفهم الأساسي للغة C#: إن الإلمام بمفاهيم مثل الفئات والطرق والكائنات سوف يساعدك.

استيراد الحزم

قبل أن ننتقل إلى الترميز، تحتاج إلى استيراد المساحات الأساسية اللازمة. ستتيح لك هذه المساحات الأساسية الوصول إلى وظائف مكتبة Aspose.Cells.

using System;
using System.IO;
using Aspose.Cells;

بعد أن أوضحنا المتطلبات الأساسية والحزم، دعنا ننتقل إلى الجزء الممتع: البرمجة!

فيما يلي تفصيل لكيفية دمج الخلايا في نطاق مسمى في ورقة Excel باستخدام Aspose.Cells لـ .NET.

الخطوة 1: إنشاء مصنف جديد

أول شيء نحتاجه هو مصنف. المصنف في مصطلحات Excel يعادل ملف Excel. فلنقم بإنشاء واحد.

// إنشاء مصنف جديد.
Workbook wb1 = new Workbook();

من خلال تهيئة مصنف جديد، أصبح لدينا الآن ملف Excel فارغ جاهز للتعامل معه. الأمر أشبه بالبدء بلوحة قماشية فارغة!

الخطوة 2: الوصول إلى ورقة العمل الأولى

يحتوي كل مصنف على أوراق عمل، وفي هذه الحالة، نريد العمل على المصنف الأول. فلنبدأ!

// احصل على ورقة العمل الأولى في المصنف.
Worksheet worksheet1 = wb1.Worksheets[0];

فكر في ورقة العمل باعتبارها علامات تبويب فردية في ملف Excel حيث توجد البيانات الفعلية. بشكل افتراضي، نقوم بالوصول إلى علامة التبويب الأولى.

الخطوة 3: إنشاء نطاق من الخلايا

الآن بعد أن أصبح لدينا ورقة العمل الخاصة بنا، حان الوقت لإنشاء نطاق. يشير النطاق إلى كتلة من الخلايا، والتي يمكن أن تمتد على عدة صفوف وأعمدة.

// إنشاء نطاق.
Range mrange = worksheet1.Cells.CreateRange("D6", "I12");

هنا، نقوم بتحديد الخلايا من D6 إلى I12—وهي كتلة تغطي عدة صفوف وأعمدة. وسنقوم قريبًا بدمج هذا النطاق!

الخطوة 4: تسمية النطاق

يؤدي تسمية النطاق إلى تسهيل الرجوع إليه لاحقًا، خاصةً عند التعامل مع مجموعات بيانات كبيرة.

// قم بتسمية النطاق.
mrange.Name = "TestRange";

من خلال تسمية هذا النطاق “TestRange”، يمكننا استرجاعه بسرعة لاحقًا في الكود، دون الحاجة إلى تحديد إحداثيات الخلية مرة أخرى.

الخطوة 5: دمج نطاق الخلايا

الآن حان وقت السحر - دمج الخلايا ضمن النطاق الذي أنشأناه للتو!

// دمج خلايا النطاق.
mrange.Merge();

تدمج هذه الخطوة جميع الخلايا من D6 إلى I12 في خلية واحدة. وهي مثالية لأشياء مثل العناوين أو الملخصات!

الخطوة 6: استرداد النطاق المسمى

بمجرد دمج الخلايا، قد نرغب في تطبيق بعض التنسيقات. فلنبدأ أولاً في استرداد النطاق المسمى.

// احصل على النطاق.
Range range1 = wb1.Worksheets.GetRangeByName("TestRange");

يتيح لنا استرجاع النطاق حسب الاسم إجراء عمليات أخرى، مثل إضافة الأنماط أو إدخال البيانات.

الخطوة 7: تحديد نمط للخلايا المدمجة

ما فائدة الخلية المدمجة إذا لم تكن تبدو مصقولة؟ دعنا ننشئ كائن نمط لمحاذاة النص وتطبيق لون الخلفية.

// تعريف كائن النمط.
Style style = wb1.CreateStyle();

// ضبط المحاذاة.
style.HorizontalAlignment = TextAlignmentType.Center;
style.VerticalAlignment = TextAlignmentType.Center;
style.Pattern = BackgroundType.Solid;
style.ForegroundColor = System.Drawing.Color.Aqua;

هنا، نقوم بمحاذاة النص أفقيًا ورأسيًا في المنتصف، ونضع لون الخلفية باللون الأزرق الفاتح (الأزرق الفيروزي). إنه تصميم أنيق، أليس كذلك؟

الخطوة 8: تطبيق النمط على النطاق

بعد تحديد النمط، حان الوقت لتطبيقه على النطاق المدمج.

// إنشاء كائن StyleFlag.
StyleFlag flag = new StyleFlag();

// جعل سمة النمط النسبي قيد التشغيل.
flag.HorizontalAlignment = true;
flag.VerticalAlignment = true;
flag.CellShading = true;

// تطبيق النمط على النطاق.
range1.ApplyStyle(style, flag);

الStyleFlagيخبر Aspose.Cells بخصائص النمط التي يجب تطبيقها—المحاذاة، والتظليل، وما إلى ذلك. وهذا يمنحك تحكمًا دقيقًا في كيفية تطبيق النمط.

الخطوة 9: إدخال البيانات في النطاق المدمج

ما هو النطاق المنسق بدون محتوى؟ دعنا نضيف بعض النص.

// إدخال البيانات في النطاق.
range1[0, 0].PutValue("Welcome to Aspose APIs.");

يؤدي هذا إلى وضع النص “مرحبًا بك في واجهات برمجة تطبيقات Aspose” في الخلية الأولى من النطاق المدمج. مع دمج الخلية، سيمتد هذا النص عبر جميع الخلايا من D6 إلى I12.

الخطوة 10: احفظ ملف Excel

وأخيرًا، دعونا نحفظ المصنف كملف Excel.

// احفظ ملف Excel.
wb1.Save(dataDir + "outputMergeCellsInNamedRange.xlsx");

هنا، يتم حفظ المصنف باسم “outputMergeCellsInNamedRange.xlsx” في الدليل المحدد.

خاتمة

والآن، لقد نجحت في دمج الخلايا في نطاق مسمى، وتطبيق بعض التنسيقات الجميلة، بل وحتى إدخال بعض البيانات — كل هذا باستخدام Aspose.Cells for .NET. سواء كنت تعمل على أتمتة التقارير، أو معالجة ملفات Excel، أو مجرد تعلم تقنيات جديدة، فإن هذا الدليل خطوة بخطوة من شأنه أن يمنحك الأساس الذي تحتاجه.

الأسئلة الشائعة

هل يمكنني دمج نطاقات متعددة غير متجاورة في Aspose.Cells؟

لا، يمكنك فقط دمج الخلايا المتجاورة في Aspose.Cells.

هل يمكنني التراجع عن عملية الدمج برمجيًا؟

بمجرد دمج الخلايا، يمكنك إلغاء دمجها باستخدامUnMerge() الطريقة في Aspose.Cells.

هل يؤدي دمج الخلايا إلى إزالة البيانات الموجودة بها؟

إذا كانت هناك أي بيانات في الخلايا قبل الدمج، فسيتم الاحتفاظ بالبيانات من الخلية الأولى للنطاق.

هل يمكنني تطبيق أنماط مختلفة على خلايا فردية ضمن نطاق مدمج؟

لا، يعمل النطاق المدمج كخلية واحدة، وبالتالي لا يمكنك تطبيق أنماط مختلفة على خلايا فردية داخله.

كيف يمكنني الوصول إلى خلية مدمجة بعد الدمج؟

بعد الدمج، لا يزال بإمكانك الوصول إلى الخلية المدمجة باستخدام إحداثيات الزاوية العلوية اليسرى.