---
title: "Работа со столбцами и строками"
---

Чтобы лучше контролировать работу таблиц, узнайте, как манипулировать столбцами и строками.

## Поиск индекса элемента таблицы

Управление столбцами, строками и ячейками осуществляется путем обращения к выбранному узлу документа по его индексу. Поиск индекса любого узла включает в себя сбор всех дочерних узлов типа element из родительского узла, а затем использование метода [IndexOf](https://reference.aspose.com/words/python-net/aspose.words/nodecollection/index_of/) для поиска индекса нужного узла в коллекции.

### Поиск индекса таблицы в документе

Иногда вам может потребоваться внести изменения в определенную таблицу в документе. Для этого вы можете обратиться к таблице по ее индексу.

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "retrieve-table-index.py" >}}

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

Аналогичным образом, вам может потребоваться внести изменения в определенную строку в выбранной таблице. Для этого вы также можете обратиться к строке по ее индексу.

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "retrieve-row-index.py" >}}

### Поиск индекса ячейки в строке

Наконец, вам может потребоваться внести изменения в определенную ячейку, и вы также можете сделать это с помощью индекса ячейки.

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "retrieve-cell-index.py" >}}

## Работа с колонками

В объектной модели документа Aspose.Words (DOM) узел [Table](https://reference.aspose.com/words/python-net/aspose.words.tables/table/) состоит из [Row](https://reference.aspose.com/words/python-net/aspose.words.tables/row/) узлов, а затем из [Cell](https://reference.aspose.com/words/python-net/aspose.words.tables/cell/) узлов. Таким образом, в объектной модели документа `Document` из Aspose.Words, как и в документах Word, отсутствует понятие столбца.

По замыслу, строки таблицы в Microsoft Word и Aspose.Words полностью независимы, а основные свойства и операции содержатся только в строках и ячейках таблицы. Это дает таблицам возможность иметь некоторые интересные атрибуты:

- Каждая строка таблицы может содержать совершенно разное количество ячеек
- По вертикали ячейки каждой строки могут иметь разную ширину
- Можно объединять таблицы с разными форматами строк и количеством ячеек

Любые операции, выполняемые со столбцами, на самом деле являются "сокращениями", которые выполняют операцию путем коллективного изменения ячеек строк таким образом, что это выглядит так, как будто они применяются к столбцам. То есть вы можете выполнять операции со столбцами, просто повторяя индекс одной и той же ячейки строки таблицы.

Следующий пример кода упрощает такие операции, демонстрируя класс facade, который собирает ячейки, составляющие "столбец" таблицы:

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "column-class.py" >}}

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "insert-blank-column.py" >}}

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "remove-column.py" >}}

## Укажите строки в качестве строк заголовка

Вы можете выбрать повторение первой строки таблицы в качестве строки заголовка только на первой странице или на каждой странице, если таблица разделена на несколько частей. В Aspose.Words вы можете повторять строку заголовка на каждой странице, используя свойство [HeadingFormat](https://reference.aspose.com/words/python-net/aspose.words.tables/rowformat/heading_format/).

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

```

Обратите внимание, что строки заголовка не работают во вложенных таблицах. То есть, если у вас есть таблица внутри другой таблицы, эта настройка не будет иметь эффекта. Это ограничение, равное Microsoft Word, не допускает этого, а не Aspose.Words.

```

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "repeat-rows-on-subsequent-pages.py" >}}

## Следите за тем, чтобы таблицы и строки не разбивались по страницам

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

Есть два отдельных метода, которые полезны для достижения этой функциональности:

- `Allow row break across pages`, который применяется к строкам таблицы
- `Keep with next`, который применяется к абзацам в ячейках таблицы

По умолчанию вышеуказанные свойства отключены.

### Следите за тем, чтобы строки не разбивались на разные страницы

Это предполагает ограничение разбиения содержимого внутри ячеек строки на страницы. В Microsoft Word это можно найти в свойствах таблицы как параметр "Разрешить разбиение строки на страницы". В Aspose.Words это находится под объектом [RowFormat](https://reference.aspose.com/words/python-net/aspose.words.tables/rowformat/) из [Row](https://reference.aspose.com/words/python-net/aspose.words.tables/row/) как свойство [RowFormat.AllowBreakAcrossPages](https://reference.aspose.com/words/python-net/aspose.words.tables/rowformat/allow_break_across_pages/).

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "row-format-disable-break-across-pages.py" >}}

```

Вы можете скачать примерный файл этого примера с сайта [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET/blob/master/Examples/Data/Table%20spanning%20two%20pages.docx).

```

### Следите за тем, чтобы Таблица не разбивалась по страницам

Чтобы таблица не разбивалась на страницы, нам нужно указать, что мы хотим, чтобы содержимое, содержащееся в таблице, оставалось единым.

Для этого в Aspose.Words используется метод, который позволяет пользователям выбирать таблицу и устанавливать для параметра [KeepWithNext](https://reference.aspose.com/words/python-net/aspose.words/paragraphformat/keep_with_next/) значение true для каждого абзаца в ячейках таблицы. Исключением является последний абзац в таблице, для которого должно быть установлено значение false.

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

{{< gist "aspose-words-gists" "212655df045ed6557d6a9b8ea875d8e9" "keep-table-together.py" >}}

```

Вы можете скачать примерный файл этого примера с сайта [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET/blob/master/Examples/Data/Table%20spanning%20two%20pages.docx).

```
