دمج خلايا الجدول

في بعض الأحيان، تتطلب صفوف معينة في الجدول عنوانا أو كتلا كبيرة من النص تشغل العرض الكامل للجدول. للتصميم المناسب للجدول، يمكن للمستخدم دمج عدة خلايا جدول في خلية واحدة. Aspose.Words يدعم الخلايا المدمجة عند العمل مع جميع تنسيقات الإدخال، بما في ذلك استيراد HTML المحتوى.

كيفية دمج خلايا الجدول

في Aspose.Words، يتم تمثيل الخلايا المدمجة بالخصائص التالية لفئة CellFormat:

  • HorizontalMerge الذي يصف ما إذا كانت الخلية جزءا من دمج أفقي للخلايا
  • VerticalMerge الذي يصف ما إذا كانت الخلية جزءا من دمج عمودي للخلايا

تحدد قيم هذه الخصائص سلوك دمج الخلايا:

  • سيكون للخلية الأولى في سلسلة من الخلايا المدمجة CellMerge.First
  • أي خلايا مدمجة لاحقا سيكون لها CellMerge.Previous
  • الخلية التي لم يتم دمجها سيكون لها CellMerge.None

تحقق مما إذا تم دمج الخلية

للتحقق مما إذا كانت الخلية جزءا من سلسلة من الخلايا المدمجة، نتحقق ببساطة من خصائص HorizontalMerge و VerticalMerge.

يوضح مثال الكود التالي كيفية طباعة نوع دمج الخلايا الأفقي والرأسي:

الخلايا المدمجة في جدول

لدمج الخلايا في جدول تم إنشاؤه باستخدام DocumentBuilder، تحتاج إلى تعيين نوع الدمج المناسب لكل خلية حيث يتوقع الدمج - أولا CellMerge.First ثم CellMerge.Previous.

أيضا، يجب أن تتذكر مسح إعداد الدمج لتلك الخلايا حيث لا يلزم الدمج-يمكن القيام بذلك عن طريق تعيين أول خلية غير دمج إلى CellMerge.None. إذا لم يتم ذلك، سيتم دمج جميع الخلايا في الجدول.

يوضح مثال التعليمات البرمجية التالية كيفية إنشاء جدول مع صفين حيث يتم دمج الخلايا في الصف الأول أفقيا:

يوضح مثال التعليمات البرمجية التالية كيفية إنشاء جدول عمودين حيث يتم دمج الخلايا في العمود الأول عموديا:

دمج خلايا الجدول في حالات أخرى

في المواقف الأخرى التي لا يتم فيها استخدام DocumentBuilder، كما هو الحال في جدول موجود، قد لا يكون دمج الخلايا بالطريقة السابقة بهذه السهولة. بدلا من ذلك، يمكننا التفاف العمليات الأساسية المتضمنة في تطبيق خصائص الدمج على الخلايا بطريقة تجعل المهمة أسهل بكثير. تشبه هذه الطريقة طريقة أتمتة الدمج، والتي تسمى لدمج نطاق من الخلايا في جدول.

سيقوم الرمز أدناه بدمج خلايا الجدول في النطاق المحدد، بدءا من الخلية المحددة وتنتهي عند الخلية النهائية. في هذه الحالة، يمكن أن يمتد النطاق إلى عدة صفوف أو أعمدة:

يوضح مثال الكود التالي كيفية دمج نطاق من الخلايا بين خليتين محددتين:

اعتمادا على إصدار إطار العمل الذي تستخدمه، قد ترغب في تحسين هذه الطريقة عن طريق تحويلها إلى طريقة تمديد. في هذه الحالة، يمكنك استدعاء هذه الطريقة مباشرة على خلية لدمج نطاق من الخلايا، مثل cell1.Merge(cell2).

الخلايا المدمجة الرأسية والأفقية في جدول

كما قلنا في مقالات سابقة، الجدول في Microsoft Word عبارة عن مجموعة من الصفوف المستقلة. يحتوي كل صف على مجموعة من الخلايا المستقلة عن خلايا الصفوف الأخرى. وهكذا، في الجدول Microsoft Word لا يوجد كائن مثل “عمود”، و" 1العمود الحادي “هو شيء من هذا القبيل"مجموعة من 1الخلايا الحادي من كل صف في الجدول”. يتيح ذلك للمستخدمين الحصول على جدول يتكون فيه، على سبيل المثال، الصف الحادي 1من خليتين – 2سم و 1سم، والصف الثاني 2يتكون من خليتين مختلفتين – 1سم و 2سم. و Aspose.Words يدعم هذا المفهوم من الجداول.

يحتوي الجدول في HTML على بنية مختلفة بشكل أساسي: يحتوي كل صف على نفس عدد الخلايا و (من المهم للمهمة) لكل خلية عرض العمود المقابل، وهو نفسه لجميع الخلايا في عمود واحد. حتى إذا HorizontalMerge و VerticalMerge إرجاع قيمة غير صحيحة، استخدم المثال التعليمات البرمجية التالية:

تحويل إلى خلايا مدمجة أفقيا

في بعض الأحيان لا يمكن اكتشاف الخلايا التي يتم دمجها لأن بعض الإصدارات الأحدث من Microsoft Word لم تعد تستخدم علامات الدمج عند دمج الخلايا أفقيا. ولكن بالنسبة للحالات التي يتم فيها دمج الخلايا في خلية أفقيا بعرضها باستخدام علامات الدمج ،Aspose.Words يوفر طريقة ConvertToHorizontallyMergedCells لتحويل الخلايا. تقوم هذه الطريقة ببساطة بتحويل الجدول وإضافة خلايا جديدة حسب الحاجة.

يوضح مثال الكود التالي الطريقة المذكورة أعلاه قيد التشغيل: