Об'єднати комірки таблиці
Іноді для певних рядків у таблиці потрібен заголовок або великі блоки тексту, що займають всю ширину таблиці. Для правильного оформлення таблиці користувач може об’єднати кілька осередків таблиці в одну. 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
. Цей метод просто перетворює таблицю та додає нові комірки за потребою.
Наступний приклад коду показує описаний вище метод у дії: