---
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, а 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" >}}
