Робота зі стовпцями і рядками
Щоб краще контролювати роботу таблиць, дізнайтеся, як маніпулювати стовпцями та рядками.
Знайдіть індекс елемента таблиці
Управління стовпцями, рядками і осередками здійснюється шляхом звернення до вибраного вузла документа за його індексом. Пошук індексу будь-якого вузла передбачає збір усіх дочірніх вузлів типу element з батьківського вузла, а потім використання методу IndexOf для пошуку індексу потрібного вузла в колекції.
Знайдіть Індекс таблиці в документі
Іноді вам може знадобитися внести зміни до певної таблиці в документі. Для цього ви можете звернутися до таблиці за її індексом.
Наступний приклад коду показує, як отримати Індекс таблиці в документі:
Знайдіть Індекс рядка в таблиці
Аналогічно, вам може знадобитися внести зміни до певного рядка у вибраній таблиці. Для цього ви також можете звернутися до рядка за його індексом.
Наступний приклад коду показує, як отримати Індекс рядка в таблиці:
Знайдіть Індекс комірки в рядку
Нарешті, вам може знадобитися внести зміни до певної комірки, і ви також можете зробити це за допомогою індексу комірки.
Наступний приклад коду показує, як отримати Індекс комірки в рядку:
Робота з колонками
В об’єктній моделі документа Aspose.Words (DOM) вузол Table складається з Row вузлів, а потім з Cell вузлів. Таким чином, в об’єктній моделі документа Aspose.Words Document
, як і в документах Word, відсутнє поняття стовпця.
За задумом, рядки таблиці в Microsoft Word і Aspose.Words повністю незалежні, а основні властивості і операції містяться тільки в рядках і осередках таблиці. Це дає таблицям можливість мати деякі цікаві атрибути:
- Кожен рядок таблиці може містити абсолютно різну кількість комірок
- По вертикалі осередки кожного рядка можуть мати різну ширину
- Можна об’єднувати таблиці з різними форматами рядків і кількістю осередків
Будь-які операції, що виконуються зі стовпцями, насправді є “скороченнями”, які виконують операцію, колективно змінюючи клітинки рядків таким чином, що виглядає так, ніби вони застосовуються до стовпців. Тобто ви можете виконувати операції зі стовпцями, просто повторюючи Індекс однієї комірки рядка таблиці.
Наступний приклад коду спрощує такі операції, демонструючи клас facade, який збирає комірки, що складають “стовпець” таблиці:
Наступний приклад коду показує, як вставити порожній стовпець у таблицю:
Наступний приклад коду показує, як видалити стовпець із таблиці в документі:
Вкажіть рядки як рядки заголовка
Ви можете повторити перший рядок таблиці як рядок заголовка лише на першій сторінці або на кожній сторінці, якщо таблиця розділена на кілька частин. У Aspose.Words ви можете повторити рядок заголовка на кожній сторінці, використовуючи властивість HeadingFormat.
Ви також можете позначити кілька рядків заголовка, якщо такі рядки розташовані один за одним на початку таблиці. Для цього вам потрібно застосувати до цих рядків властивості HeadingFormat.
Наступний приклад коду показує, як створити таблицю, що містить рядки заголовка, які повторюються на наступних сторінках:
Слідкуйте за тим, щоб таблиці і рядки не розбивалися по сторінках
У деяких випадках вміст таблиці не повинно бути розділене по сторінках. Наприклад, якщо заголовок знаходиться над таблицею, заголовок і таблиця завжди повинні розташовуватися разом на одній сторінці, щоб зберегти належний зовнішній вигляд.
Є два окремі методи, які корисні для досягнення цієї функціональності:
Allow row break across pages
, який застосовується до рядків таблиціKeep with next
, що застосовується до абзаців у клітинках таблиці
За замовчуванням вищевказані властивості відключені.
Слідкуйте за тим, щоб рядки не розбивалися на сторінки
Це передбачає обмеження розбиття вмісту всередині комірок рядка на сторінки. У Microsoft Word це можна знайти у властивостях таблиці як параметр “Дозволити розбиття рядка на сторінки”. В Aspose.Words ЦЕ знаходиться під об’єктом RowFormat з Row як властивість RowFormat.AllowBreakAcrossPages.
Наступний приклад коду показує, як вимкнути розбиття рядків на сторінки для кожного рядка таблиці:
Слідкуйте за тим, щоб таблиця не розбивалася на сторінки
Щоб таблиця не розбивалася на сторінки, нам потрібно вказати, що ми хочемо, щоб вміст, що міститься в таблиці, залишався єдиним.
Для цього в Aspose.Words використовується метод, який дозволяє користувачам вибирати таблицю та встановлювати для параметра KeepWithNext значення true для кожного абзацу в клітинках таблиці. Винятком є останній абзац у таблиці, для якого має бути встановлено значення false.
Наступний приклад коду показує, як налаштувати таблицю так, щоб вона залишалася разом на одній сторінці: