Об'єднати комірки таблиці

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

Як об’єднати комірки таблиці

В Aspose.Words об’єднані комірки представлені наступними властивостями класу CellFormat:

  • HorizontalMerge, який описує, чи є клітина частиною горизонтального злиття комірок
  • VerticalMerge, який описує, чи є комірка частиною вертикального об’єднання комірок

Значення цих властивостей визначають поведінку клітин при злитті:

  • Перша комірка в послідовності об’єднаних комірок матиме CellMerge.First
  • Усі наступні об’єднані комірки матимуть CellMerge.Previous
  • Клітинка, яка не була об’єднана, матиме CellMerge.None

Перевірте, чи об’єднана клітина

Щоб перевірити, чи є комірка частиною послідовності об’єднаних комірок, ми просто перевіряємо властивості HorizontalMerge та VerticalMerge.

Наступний приклад коду показує, як надрукувати тип злиття горизонтальних і вертикальних комірок:

Об’єднані комірки в таблиці

Щоб об’єднати комірки в таблиці, створеній за допомогою DocumentBuilder, вам потрібно встановити відповідний тип злиття для кожної комірки, в якій очікується злиття – спочатку CellMerge.First, а потім CellMerge.Previous.

Крім того, ви повинні пам’ятати, що для тих комірок, де злиття не потрібно, необхідно скасувати Налаштування злиття – це можна зробити, встановивши для першої комірки, що не підлягає злиттю, значення CellMerge.None. Якщо цього не зробити, всі осередки в таблиці будуть об’єднані.

Наступний приклад коду показує, як створити таблицю з двома рядками, де комірки в першому рядку об’єднуються горизонтально:

Наступний приклад коду показує, як створити таблицю з двома стовпцями, де комірки в першому стовпці об’єднуються вертикально:

Об’єднуйте комірки таблиці в інших випадках

В інших ситуаціях, коли DocumentBuilder не використовується, наприклад, в існуючій таблиці, об’єднання комірок попереднім способом може виявитися не таким простим. Натомість ми можемо обернути основні операції, пов’язані із застосуванням властивостей об’єднання до комірок, у метод, який значно спрощує завдання. Цей метод подібний до методу автоматизації злиття, який викликається для об’єднання діапазону комірок у таблиці.

Наведений нижче код об’єднає комірки таблиці у вказаному діапазоні, починаючи з вказаної комірки і закінчуючи кінцевою коміркою. У цьому випадку діапазон може охоплювати кілька рядків або стовпців:

Наступний приклад коду показує, як об’єднати діапазон комірок між двома вказаними комірками:

Залежно від використовуваної версії платформи, можливо, ви захочете вдосконалити цей метод, перетворивши його на метод розширення. У цьому випадку ви можете викликати цей метод безпосередньо для комірки, щоб об’єднати діапазон комірок, наприклад cell1.Merge(cell2).

Об’єднані по вертикалі і горизонталі осередки в таблиці

Як ми вже говорили в попередніх статтях, таблиця в Microsoft Word являє собою набір незалежних рядків. Кожен рядок містить набір комірок, які не залежать від комірок інших рядків. Отже, у таблиці Microsoft Word немає такого об’єкта, як “стовпець”, а “1-й стовпець” - це щось на зразок “набору 1-х комірок кожного рядка таблиці”. Це дозволяє користувачам створювати таблицю, в якій, наприклад, 1–й рядок складається з двох комірок – шириною 2 см і 1 см2, а 2-й рядок складається з двох різних комірок - шириною 1 см і 2 см.і Aspose.Words підтримують цю концепцію таблиць.

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

Перетворити в горизонтально об’єднані комірки

Іноді неможливо визначити, які комірки об’єднані, оскільки деякі новіші версії Microsoft Word більше не використовують прапори об’єднання при горизонтальному об’єднанні комірок. Але для ситуацій, коли комірки об’єднуються в комірку по горизонталі по ширині за допомогою прапорів об’єднання, Aspose.Words надає метод перетворення комірок ConvertToHorizontallyMergedCells. Цей метод просто перетворює таблицю та додає нові комірки за потребою.

Наступний приклад коду показує описаний вище метод у дії: