---
title: "Обединяване на клетки в Таблица C++"
---

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

## Как да обедините клетките на таблицата

В Aspose.Words слетите клетки са представени от следните свойства на класа [CellFormat](https://reference.aspose.com/words/cpp/aspose.words.tables/cellformat/):

- [HorizontalMerge](https://reference.aspose.com/words/cpp/aspose.words.tables/cellformat/get_horizontalmerge/) който описва дали клетката е част от хоризонтално сливане на клетки
- [VerticalMerge](https://reference.aspose.com/words/cpp/aspose.words.tables/cellformat/get_verticalmerge/) който описва дали клетката е част от вертикално сливане на клетки

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

- Първата клетка в поредица от Обединени клетки ще има [CellMerge.First](https://reference.aspose.com/words/cpp/aspose.words.tables/cellmerge/)
- Всички впоследствие обединени клетки ще имат [CellMerge.Previous](https://reference.aspose.com/words/cpp/aspose.words.tables/cellmerge/)
- Клетка, която не е обединена, ще има [CellMerge.None](https://reference.aspose.com/words/cpp/aspose.words.tables/cellmerge/)

```

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

```

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

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

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "check-cells-merged.h" >}}

## Обединени клетки в Таблица {#merge-cells-in-a-table}

За да обедините клетки в таблица, създадена с [DocumentBuilder](https://reference.aspose.com/words/cpp/aspose.words/documentbuilder/), трябва да зададете подходящия тип обединяване за всяка клетка, където се очаква сливането - първо **CellMerge.First** и след това **CellMerge.Previous**.

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

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "horizontal-merge.h" >}}

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "vertical-merge.h" >}}

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

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

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "merge-cells.h" >}}

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "merge-cell-range.h" >}}

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

## Вертикални и хоризонтални обединени клетки в Таблица {#vertical-and-Horizontal-merged-cells-in-the-table}

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

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "print-horizontal-and-vertical-merged.h" >}}

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "horizontal-and-vertical-merge-helper-classes.h" >}}

## Конвертиране в хоризонтално обединени клетки {#convert-to-horizontally-merged-cells}

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

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

{{< gist "aspose-words-gists" "03b0c69804cda6427adc3f12cc6ba2d3" "convert-to-horizontally-merged-cells.h" >}}
