---
title: "Объединить ячейки таблицы в in Java"
---

Иногда для определенных строк в таблице требуется заголовок или большие блоки текста, занимающие всю ширину таблицы. Для правильного оформления таблицы пользователь может объединить несколько ячеек таблицы в одну. Aspose.Words поддерживает объединенные ячейки при работе со всеми входными форматами, включая импорт содержимого HTML.

## Как объединить ячейки таблицы

В Aspose.Words объединенные ячейки представлены следующими свойствами класса [CellFormat](https://reference.aspose.com/words/java/com.aspose.words/cellformat/):

- [HorizontalMerge](https://reference.aspose.com/words/java/com.aspose.words/cellformat/#getHorizontalMerge), который описывает, является ли ячейка частью горизонтального слияния ячеек
- [VerticalMerge](https://reference.aspose.com/words/java/com.aspose.words/cellformat/#getVerticalMerge), который описывает, является ли ячейка частью вертикального объединения ячеек

Значения этих свойств определяют поведение ячеек при слиянии:

- Первая ячейка в последовательности объединенных ячеек будет иметь [CellMerge.First](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#FIRST)
- Все последующие объединенные ячейки будут иметь [CellMerge.Previous](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#PREVIOUS)
- Ячейка, которая не была объединена, будет иметь [CellMerge.None](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#NONE)

![work-with-merged-cells-aspose-words-java](/words/java/working-with-merged-cells/working-with-merged-cells-1.png)

```

Иногда при загрузке существующих ячеек документа в таблицу они отображаются объединенными. Однако на самом деле это может быть одна длинная ячейка - иногда Microsoft Word экспортирует объединенные ячейки таким образом. Это может привести к путанице при попытке работать с отдельными ячейками, но, похоже, нет какой-либо определенной закономерности относительно того, когда это происходит.

```

## Проверка того, объединена ли ячейка

Чтобы проверить, является ли ячейка частью последовательности объединенных ячеек, мы просто проверяем свойства **HorizontalMerge** и **VerticalMerge**.

В следующем примере кода показано, как напечатать тип слияния горизонтальных и вертикальных ячеек:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "check-cells-merged.java" >}}

## Объединяйте ячейки таблицы При использовании DocumentBuilder

Чтобы объединить ячейки в таблице, созданной с помощью [DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/), вам необходимо задать соответствующий тип слияния для каждой ячейки, в которой ожидается слияние - сначала **CellMerge.First**, а затем **CellMerge.Previous**.

Кроме того, вы должны помнить, что для тех ячеек, где слияние не требуется, необходимо отменить настройку слияния - это можно сделать, установив для первой ячейки, не подлежащей слиянию, значение **CellMerge.None**. Если этого не сделать, все ячейки в таблице будут объединены.

В следующем примере кода показано, как создать таблицу с двумя строками, в которой ячейки в первой строке объединяются по горизонтали:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "horizontal-merge.java" >}}

В следующем примере кода показано, как создать таблицу с двумя столбцами, в которой ячейки в первом столбце объединяются по вертикали:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "vertical-merge.java" >}}

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

В других ситуациях, когда **DocumentBuilder** не используется, например, в существующей таблице, объединение ячеек предыдущим способом может оказаться не таким простым. Вместо этого мы можем обернуть основные операции, связанные с применением свойств объединения к ячейкам, в метод, который значительно упрощает задачу. Этот метод аналогичен методу автоматизации слияния, который вызывается для объединения диапазона ячеек в таблице.

Приведенный ниже код объединит ячейки таблицы в указанном диапазоне, начиная с указанной ячейки и заканчивая конечной ячейкой. В этом случае диапазон может охватывать несколько строк или столбцов:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "merge-cells.java" >}}

В следующем примере кода показано, как объединить диапазон ячеек между двумя указанными ячейками:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "merge-cell-range.java" >}}

## Объединенные по вертикали и горизонтали ячейки в таблице HTML

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

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

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "print-horizontal-and-vertical-merged.java" >}}

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "horizontal-and-vertical-merge-helper-classes.java" >}}

## Преобразование в горизонтально объединенные ячейки

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

Следующий пример кода показывает описанный выше метод в действии:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "convert-to-horizontally-merged-cells.java" >}}
