Застосувати форматування

До кожного елемента таблиці можна застосувати Різне форматування. Наприклад, форматування таблиці буде застосовано до всієї таблиці, форматування рядків - лише до певних рядків, форматування комірок - лише до певних комірок.

Aspose.Words надає розширені можливості API для вилучення та застосування форматування до таблиці. Ви можете використовувати вузли Table, RowFormat та CellFormat для налаштування форматування.

У цій статті ми поговоримо про те, як застосувати форматування до різних вузлів таблиці та які налаштування форматування таблиці підтримує Aspose.Words.

Застосувати форматування до різних вузлів

У цьому розділі ми розглянемо застосування форматування до різних вузлів таблиці.

Форматування на рівні таблиці

Щоб застосувати форматування до таблиці, ви можете використовувати властивості, доступні на відповідному вузлі Table, використовуючи класи Table, PreferredWidth та TableCollection.

На малюнках нижче показано представлення функцій форматування Table у Microsoft Word та відповідних властивостей у Aspose.Words.

formattin-features-table-level-aspose-words-cpp

formatting-table-options-aspose-words-cpp

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

Наступний приклад коду показує, як створити таблицю з включеними всіма межами (grid):

Форматування на рівні рядків

Рівень рядка

На малюнках нижче показано представлення функцій форматування Row у Microsoft Word та відповідних властивостей у Aspose.Words.

formatting-row-level-aspose-words-cpp

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

Форматування на рівні комірок

Форматування на рівні комірок контролюється класами Cell, CellFormat та CellCollection.

На малюнках нижче показано представлення функцій форматування Cell у Microsoft Word та відповідних властивостей у Aspose.Words.

formatting-cell-level-aspose-words-cpp

auto-formatting-cell-level-aspose-words-cpp

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

У наступному прикладі коду показано, як задати кількість пробілів (в пунктах), що додаються до лівого/верхнього/правого / нижнього краю вмісту комірки:

Вкажіть висоту рядків

Найпростіший спосіб встановити висоту рядка-використовувати параметр DocumentBuilder. Використовуючи відповідні властивості RowFormat, ви можете встановити значення висоти за замовчуванням або застосувати різну висоту для кожного рядка в таблиці.

У Aspose.Words висота рядка таблиці регулюється за допомогою:

  • властивість висоти рядка - Height
  • властивість правила висоти для даного рядка - HeightRule

У той же час для кожного рядка можна задати різну висоту – це дозволяє вам широко управляти настройками таблиці.

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

Вказівка ширини таблиці і осередків

Таблиця в документі Microsoft Word надає кілька різних способів зміни розміру таблиці та окремих комірок. Ці властивості дозволяють значною мірою контролювати зовнішній вигляд і поведінку таблиці, так що Aspose.Words підтримує поведінку таблиць, як у Microsoft Word.

Важливо знати, що елементи таблиці мають кілька різних властивостей, які можуть впливати на те, як розраховується ширина всієї таблиці, а також окремих комірок:

  • Краща ширина таблиці
  • Краща ширина окремих осередків
  • Включення автоматичної підгонки по таблиці

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

Як використовувати бажану ширину

Бажана ширина таблиці або окремих комірок визначається за допомогою властивості preferred width, яка є розміром, який повинен відповідати елементу. Тобто краща ширина може бути вказана як для всієї таблиці, так і для окремих осередків. У деяких ситуаціях може бути неможливо точно встановити цю ширину, але в більшості випадків фактична ширина буде близькою до цього значення.

Відповідний бажаний тип і значення ширини встановлюються методами класу PreferredWidth:

  • метод Auto для визначення автоматичної ширини або “без бажаної ширини”
  • метод FromPercent для вказівки процентної ширини
  • метод FromPoints для вказівки ширини в точках

На малюнках нижче показано представлення preferred width setting features у Microsoft Word та відповідних властивостей у Aspose.Words.

formatting-table-properties-aspose-words-cpp

Приклад того, як ці параметри застосовуються до фактичної таблиці в документі, можна побачити на малюнку нижче.

todo:image_alt_text

Вкажіть бажану ширину таблиці або комірки

У Aspose.Words ширина таблиці та комірок задається за допомогою властивостей Table.PreferredWidth та CellFormat.PreferredWidth, а параметри доступні у списку PreferredWidthType:

  • Auto, що еквівалентно відсутності бажаної встановленої ширини
  • Percent, який відповідає розміру елемента щодо доступного простору у вікні або контейнері та перераховує значення при зміні доступної ширини
  • Points, який відповідає елементу заданої ширини в точках

Використання властивості Table.PreferredWidth дозволяє налаштувати бажану ширину щодо контейнера: сторінки, текстового стовпця або комірки зовнішньої таблиці, якщо це вкладена таблиця.

У наступному прикладі коду показано, як налаштувати автоматичну відповідність таблиці 50% ширини сторінки:

Використання властивості CellFormat.PreferredWidth для даної комірки дозволить налаштувати її бажану ширину.

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

Знайдіть бажаний тип і значення ширини

Ви можете використовувати властивості Type та Value, щоб знайти бажану ширину потрібної таблиці або комірки.

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

Як налаштувати автозапуск

Властивість AllowAutoFit дозволяє клітинкам таблиці збільшуватися і зменшуватися в розмірі відповідно до обраного критерієм. Наприклад, ви можете використовувати параметр AutoFit to Window, щоб таблиця відповідала ширині сторінки, а параметр AutoFit to Content дозволяв кожній комірці збільшуватися або зменшуватися відповідно до її вмісту.

За замовчуванням Aspose.Words вставляє нову таблицю за допомогою AutoFit to Window. Розмір таблиці буде відповідати доступній ширині сторінки. Щоб змінити розмір таблиці, ви можете викликати метод AutoFit. Цей метод приймає перерахування AutoFitBehavior, яке вказує, який тип автозаповнення застосовується до таблиці.

Важливо знати, що метод автозаповнення насправді є ярликом, який одночасно застосовує різні властивості до таблиці. Це властивості, які фактично забезпечують спостережувану поведінку таблиці. Ми обговоримо ці властивості для кожного параметра автозаповнення.

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

AutoFit від таблиці до вікна

Коли до таблиці застосовується автоматична підгонка під вікно, фактично за лаштунками виконуються наступні операції:

  1. Властивість Table.AllowAutoFit дозволяє автоматично змінювати розмір стовпців відповідно до наявного вмісту, використовуючи значення Table.PreferredWidth 100%
  2. CellFormat.PreferredWidth видаляється з усіх комірок таблиці
  3. Ширина стовпців перераховується з урахуванням поточного вмісту таблиці-кінцевим результатом є таблиця, що займає всю доступну ширину
  4. Ширина стовпців у таблиці змінюється автоматично, коли користувач редагує текст

У наступному прикладі коду показано, як автоматично підігнати таблицю під ширину сторінки:

AutoFit таблиця з вмістом

Коли вміст автоматично додається до таблиці, наступні кроки фактично виконуються за лаштунками:

  1. Властивість Table.AllowAutoFit дозволяє автоматично змінювати розмір кожної комірки відповідно до її вмісту

  2. Бажана ширина таблиці видаляється з Table.PreferredWidth, CellFormat.PreferredWidth видаляється для кожної комірки таблиці

  3. Ширина стовпців перераховується для поточного вмісту таблиці-кінцевим результатом є таблиця, в якій ширина стовпців і ширина всієї таблиці автоматично змінюються, щоб найкращим чином відповідати вмісту, коли користувач редагує текст

У наступному прикладі коду показано, як автоматично підігнати таблицю до її вмісту:

Вимкніть AutoFit у таблиці та використовуйте фіксовану ширину стовпців

Якщо в таблиці відключена автоматична підгонка і замість неї використовується фіксована ширина стовпців, виконуються наступні дії:

  1. Table.AllowAutoFit властивість вимкнено, тому стовпці не збільшуються та не стискаються до їх вмісту
  2. Бажана ширина всієї таблиці видаляється з Table.PreferredWidth, CellFormat.PreferredWidth видаляється з усіх комірок таблиці
  3. Кінцевим результатом є таблиця, ширина стовпців якої визначається властивістю CellFormat.Width і розмір стовпців якої не змінюється автоматично при введенні Користувачем тексту або при зміні розміру сторінки

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

Порядок пріоритету при обчисленні ширини комірки

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

Важливо знати, що властивість CellFormat.Width працює по-різному залежно від того, які інші властивості ширини вже існують у таблиці.

Aspose.Words для обчислення ширини комірок використовується наступний порядок:

Замовлення Власність Опис
AllowAutoFit визначається Якщо параметр AutoFit увімкнено:
- розмір таблиці може перевищувати бажану ширину для розміщення вмісту-зазвичай він не зменшується нижче бажаної ширини
- будь-яка зміна значення CellFormat.Width ігнорується, і замість цього клітинка буде відповідати своєму вмісту
PreferredWidthType зі значенням Points або Percent CellFormat.Width ігнорується
PreferredWidthType зі значенням Auto Значення з CellFormat.Width копіюється і стає кращою шириною комірки (в пунктах)

Дозволити Інтервал Між Клітинками

Ви можете задати будь-яке додаткове відстань між осередками таблиці, аналогічне параметру “відстань між осередками” в Microsoft Word. Це можна зробити за допомогою властивості AllowCellSpacing.

Приклад того, як ці параметри застосовуються до фактичної таблиці в документі, можна побачити на малюнку нижче.

formatting-spacing-between-cells-aspose-words-cpp

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

Застосуйте кордону і розтушовування

Межі та штрихування можна застосувати або до всієї таблиці за допомогою Table.SetBorder, Table.SetBorders та Table.SetShading, або лише до певних комірок за допомогою CellFormat.Borders та CellFormat.Shading. Крім того, межі рядків можна задати за допомогою RowFormat.Borders, однак штрихування не може бути застосована таким чином.

На малюнках нижче показані Налаштування меж і тіней в Microsoft Word і відповідні їм властивості в Aspose.Words.

formatting-border-line-aspose-words-cpp

formatting-cell-color-aspose-words-cpp

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