Сливане на таблици клетки

Понякога някои редове в таблица изискват заглавие или големи блокове от текст, които заемат пълната ширина на таблицата. За правилното проектиране на масата, потребителят може да слее няколко клетки на масата в една. Aspose.Words поддържа слетите клетки при работа с всички входни формати, включително внос на HTML съдържание.

Как да се сливат клетки маса

В Aspose.Words, Слетите клетки са представени от следните свойства на CellFormat клас:

  • HorizontalMerge което описва дали клетката е част от хоризонтално сливане на клетки
  • VerticalMerge което описва дали клетката е част от вертикално сливане на клетки

Стойностите на тези свойства определят сливането на поведението на клетките:

  • Първата клетка в поредица от слети клетки ще има CellMerge.First
  • Всички впоследствие слети клетки ще имат CellMerge.Previous
  • Клетка, която не се слива ще има CellMerge.None

Проверете дали клетката е разбъркана

За да проверим дали клетката е част от поредица от слети клетки, просто проверяваме HorizontalMerge както и VerticalMerge имоти.

Следният пример за код показва как да отпечатате типа хоризонтално и вертикално сливане на клетки:

Сливане на таблици клетки при използване на документ строител

Сливане на клетките в таблица, създадена с DocumentBuilder, трябва да зададете подходящия тип сливане за всяка клетка, където сливането се очаква. CellMerge.First и тогава CellMerge.Previous.

Също така, не трябва да забравяте да изчистите настройката за сливане за тези клетки, където не се изисква сливане. CellMerge.None. Ако това не се направи, всички клетки в таблицата ще бъдат обединени.

Следният пример за код показва как да се създаде таблица с два реда, където клетките в първия ред се сливат хоризонтално:

Следният пример за код показва как да се създаде таблица с две колони, в която клетките в първата колона се сливат вертикално:

Сливане на таблици клетки в други случаи

В други ситуации, когато DocumentBuilder не се използва, като например в съществуваща таблица, сливането на клетките по предишния начин може да не е толкова лесно. Вместо това можем да увием основните операции, свързани с прилагането на сливащи се свойства към клетките в метод, който улеснява задачата. Този метод е подобен на метода за сливане на автоматизация, който се нарича сливане на набор от клетки в таблица.

Кодът по-долу ще слее клетките на таблицата в определения диапазон, като се започне от дадена клетка и завършва в крайната клетка. В този случай обхватът може да обхваща няколко реда или колони:

Следният пример за код показва как да се слее набор от клетки между две определени клетки:

В зависимост от версията на .NET Framework Вие използвате, може да искате да усъвършенствате този метод чрез превръщането му в метод на разширение. В този случай, можете да се обадите на този метод директно на клетка, за да се слее набор от клетки, като cell1.Merge(cell2).

Вертикални и хоризонтални свързващи клетки в HTML таблица

Както казахме в предишните статии, таблица в Microsoft Word е набор от независими редове. Всеки ред има набор от клетки, които са независими от клетките на други редове. По този начин в Microsoft Word таблица не съществува такъв обект като готварски, а първата колона е нещо като набор от 1-ви клетки на всеки ред в таблицата. Това позволява на потребителите да имат таблица, в която, например, 1-ви ред се състои от две клетки 2см и 1см, а 2-ри ред се състои от два различни клетки, които са широки 1см и 2см. И Aspose.Words поддържа тази концепция за масите.

Таблица в HTML има по същество различна структура: всеки ред има еднакъв брой клетки и (това е важно за задачата) всяка клетка има широчината на съответната колона, еднаква за всички клетки в една колона. Така че, ако HorizontalMerge както и VerticalMerge връщане на неправилна стойност, използвайте следния пример с код:

Конвертиране хоризонтално Разделени клетки

Понякога не е възможно да се открият кои клетки се сливат, защото някои по-нови версии на Microsoft Word не използват повече сливащи се флагове, когато клетките се сливат хоризонтално. Но за ситуации, в които клетките се сливат в клетка хоризонтално по широчина, използвайки сливащи се флагове, Aspose.Words осигурява ConvertToHorizontallyMergedCells метод за преобразуване на клетките. Този метод просто трансформира таблицата и добавя нови клетки, когато е необходимо.

Следният пример с код показва гореспоменатия метод в действие: