دمج خلايا الجدول
في بعض الأحيان، تتطلب صفوف معينة في الجدول عنوانا أو كتلا كبيرة من النص تشغل العرض الكامل للجدول. للتصميم المناسب للجدول، يمكن للمستخدم دمج عدة خلايا جدول في خلية واحدة. Aspose.Words يدعم الخلايا المدمجة عند العمل مع جميع تنسيقات الإدخال، بما في ذلك استيراد HTML المحتوى.
كيفية دمج خلايا الجدول
في Aspose.Words، يتم تمثيل الخلايا المدمجة بالخصائص التالية لفئة CellFormat:
- HorizontalMerge الذي يصف ما إذا كانت الخلية جزءا من دمج أفقي للخلايا
- VerticalMerge الذي يصف ما إذا كانت الخلية جزءا من دمج عمودي للخلايا
تحدد قيم هذه الخصائص سلوك دمج الخلايا:
- سيكون للخلية الأولى في سلسلة من الخلايا المدمجة CellMerge.First
- أي خلايا مدمجة لاحقا سيكون لها CellMerge.Previous
- الخلية التي لم يتم دمجها سيكون لها CellMerge.None
التحقق مما إذا تم دمج خلية
للتحقق مما إذا كانت الخلية جزءا من سلسلة من الخلايا المدمجة، نتحقق ببساطة من خصائص HorizontalMerge و VerticalMerge.
يوضح مثال الكود التالي كيفية طباعة نوع دمج الخلايا الأفقي والرأسي:
دمج خلايا الجدول عند استخدام DocumentBuilder
لدمج الخلايا في جدول تم إنشاؤه باستخدام DocumentBuilder، تحتاج إلى تعيين نوع الدمج المناسب لكل خلية حيث يتوقع الدمج - أولا CellMerge.First ثم CellMerge.Previous.
أيضا، يجب أن تتذكر مسح إعداد الدمج لتلك الخلايا حيث لا يلزم الدمج-يمكن القيام بذلك عن طريق تعيين أول خلية غير دمج إلى CellMerge.None. إذا لم يتم ذلك، سيتم دمج جميع الخلايا في الجدول.
يوضح مثال التعليمات البرمجية التالية كيفية إنشاء جدول مع صفين حيث يتم دمج الخلايا في الصف الأول أفقيا:
يوضح مثال التعليمات البرمجية التالية كيفية إنشاء جدول عمودين حيث يتم دمج الخلايا في العمود الأول عموديا:
دمج خلايا الجدول في حالات أخرى
في المواقف الأخرى التي لا يتم فيها استخدام DocumentBuilder، كما هو الحال في جدول موجود، قد لا يكون دمج الخلايا بالطريقة السابقة بهذه السهولة. بدلا من ذلك، يمكننا التفاف العمليات الأساسية المتضمنة في تطبيق خصائص الدمج على الخلايا بطريقة تجعل المهمة أسهل بكثير. تشبه هذه الطريقة طريقة أتمتة الدمج، والتي تسمى لدمج نطاق من الخلايا في جدول.
سيقوم الرمز أدناه بدمج خلايا الجدول في النطاق المحدد، بدءا من الخلية المحددة وتنتهي عند الخلية النهائية. في هذه الحالة، يمكن أن يمتد النطاق إلى عدة صفوف أو أعمدة:
يوضح مثال الكود التالي كيفية دمج نطاق من الخلايا بين خليتين محددتين:
الخلايا المدمجة الرأسية والأفقية في HTML جدول
كما قلنا في مقالات سابقة، الجدول في Microsoft Word عبارة عن مجموعة من الصفوف المستقلة. يحتوي كل صف على مجموعة من الخلايا المستقلة عن خلايا الصفوف الأخرى. وهكذا، في الجدول Microsoft Word لا يوجد كائن مثل “عمود”، و" العمود 1 “هو شيء مثل"مجموعة من الخلايا 1 من كل صف في الجدول”. هذا يسمح للمستخدمين أن يكون الجدول الذي، على سبيل المثال، الصف 1 يتكون من خليتين – 2 سم و 1 سم، والصف 2 يتكون من خليتين مختلفتين – 1 سم و 2 سم واسعة. و Aspose.Words يدعم هذا المفهوم من الجداول.
يحتوي الجدول في HTML على بنية مختلفة بشكل أساسي: يحتوي كل صف على نفس عدد الخلايا و (من المهم للمهمة) لكل خلية عرض العمود المقابل، وهو نفسه لجميع الخلايا في عمود واحد. حتى إذا HorizontalMerge و VerticalMerge إرجاع قيمة غير صحيحة، استخدم المثال التعليمات البرمجية التالية:
تحويل إلى خلايا مدمجة أفقيا
في بعض الأحيان لا يمكن اكتشاف الخلايا التي يتم دمجها لأن بعض الإصدارات الأحدث من Microsoft Word لم تعد تستخدم علامات الدمج عند دمج الخلايا أفقيا. ولكن بالنسبة للحالات التي يتم فيها دمج الخلايا في خلية أفقيا بعرضها باستخدام علامات الدمج ،Aspose.Words يوفر طريقة ConvertToHorizontallyMergedCells
لتحويل الخلايا. تقوم هذه الطريقة ببساطة بتحويل الجدول وإضافة خلايا جديدة حسب الحاجة.
يوضح مثال الكود التالي الطريقة المذكورة أعلاه قيد التشغيل: