Работа с таблицами

Редактировал(а) Coluns 29.08.2023

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

Создание и редактирование таблиц

Для создания используйте кнопку 2021-09-24_142336.png[Таблица], которая вызывает окно мастера таблиц.

2021-09-24_141353-2.png

На вкладке «Свойства таблицы» мы задаем число строк и столбцов, выбираем расположение заголовков. Также здесь можно задавать размеры таблицы, толщину границ и отступы. В блоке «Выравнивание» настраивается обтекание текстом. На вкладке «Дополнительно» можно задать CSS-стиль оформления, а также присвоить таблице уникальный идентификатор, который используется для автоматической нумерации.

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

Настройка таблиц

Для настройки и редактирования свойств таблицы используйте ее контекстное меню. Оно позволяет добавлять строки и колонки, разбивать и объединять ячейки. Каждой ячейке мы можем задавать индивидуальные свойства – высоту и ширину, цвет фона и границ, выравнивание и переносы текста, а также присваивать свойства заголовка.

2021-09-24 15_04_40-2021-09-24 14_51_43.png

Кроме мастера создания и редактирования таблиц, мы можем использовать язык разметки (доступ с помощью кнопки 2021-09-24_100802.png [Источник] панели инструментов редактора). Приведенная на рисунке выше таблица в разметке будет выглядеть следующим образом:

(% style="width:60%" %)
|=Заголовок колонки 1|=Заголовок колонки 2|=Заголовок колонки 3|=Заголовок колонки 4
|ячейка 1-1|ячейка 1-2|ячейка 1-3|ячейка 1-4
|(% colspan="2" rowspan="1" %)ячейка 2-1 + ячейка 2-2|ячейка 2-3|ячейка 2-4
|ячейка 3-1|ячейка 3-2|ячейка 3-3|ячейка 3-4
|ячейка 4-1|ячейка 4-2|ячейка 3-3|ячейка 4-4

Результат рендеринга разметки:

Заголовок колонки 1Заголовок колонки 2Заголовок колонки 3Заголовок колонки 4
ячейка 1-1ячейка 1-2ячейка 1-3ячейка 1-4
ячейка 2-1 + ячейка 2-2ячейка 2-3ячейка 2-4
ячейка 3-1ячейка 3-2ячейка 3-3ячейка 3-4
ячейка 4-1ячейка 4-2ячейка 3-3ячейка 4-4

Размещение данных

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

Проиллюстрируем вышесказанное:

Заголовок колонки 1Заголовок колонки 2

Текст с форматированием:

  • пункт;
    • подпункт;
  • пункт.

информационный блок

и т.п...

ссылка на вики-страницу

видео:

 

рисунок:

XWiki_1.png

Вложенная таблица:

Заголовок колонки 1Заголовок колонки 2Заголовок колонки 3Заголовок колонки 4
ячейка 1-1ячейка 1-2ячейка 1-3ячейка 1-4
ячейка 2-1 + ячейка 2-2ячейка 2-3ячейка 2-4
ячейка 3-1ячейка 3-2ячейка 3-3ячейка 3-4
ячейка 4-1ячейка 4-2ячейка 3-3
ещеоднавложен-ная
   
   
   

картинка по url:

https://w-dog.ru/wallpapers/10/12/429061979999934/priroda-derevo-vetki-listya-solnechnyj-svet-luchi-krasota.jpg

макрос «Status»:

false

макрос «HTML» с кодом чекбокса:

Импорт готовых таблиц

Импортировать готовые таблицы можно двумя способами:

1) используя буфер обмена – копируя таблицу в исходном документе и вставляя ее в вики-статью в режиме редактирования;
2) с помощью отдельной процедуры импорта – создавая документ по специальному шаблону «Страница из Office» и загружая в него файл с исходной таблицей, процедура импорта описана в статье "Импорт документов из файлов Office".

Сортировка и фильтрация данных

Наша платформа позволяет включать сортировку и фильтрацию данных в таблицах, для этого используется макрос «Sortable Table». В нем задаются два параметра:

1) "Sortable" (yes/no) – отвечает за сортировку данных по колонкам;
2) "Filtrable" (yes/no) – добавляет к заголовку таблицы поля фильтрации значений.

Внимание! Действие макроса «Sortable Table» затрагивает все таблицы на странице, т.е. они все становятся сортируемыми и/или фильтруемыми независимо от позиции макроса.

Простые вычисления в таблицах

Мы можем проводить вычисления в таблицах, для этого в арсенале платформы есть специальные макросы.

Макрос «Calc»

Позволяет производить в строках таблиц простые вычисления по заданным формулам. Алгоритм использования таков:

  1. Помещаем макрос в целевую ячейку, куда хотим вывести результаты вычислений.
  2. В поле "Formula" макроса задаем формулу расчета с указанием ячеек-источников данных. Например, формула $A*$B+2*$C вычисляет произведение значений в первых двух ячейках текущей строки и прибавляет к нему удвоенное значение третьей. Символы A,B и C обозначают позицию ячейки (A – ячейка первой колонки, B – второй и т.д.); вместо заглавных латинских букв можно использовать выражение row.get(#), где в скобках дается номер колонки; в этом случае формула будет выглядеть так: $row.get(1)*$row.get(2)+2*$row.get(3).
  3. В поле "Format" задается формат вывода результат вычислений – число знаков после точки (по умолчанию 0.00), также здесь можно задать единицы измерения.

Код макроса в разметке выглядит следующим образом:

{{calc formula="$A*$B+2*$C" format="0.00"/}}

Рассмотрим пример таблицы с вычисляемыми строками в разметке.

(% style="width:60%" %)
|=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
|2|3|1|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
|4|2|2|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
|3|4|3|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}

Результат рендеринга представлен ниже:

Заголовок колонки AЗаголовок колонки BЗаголовок колонки CЗаголовок колонки D
2318.00 (руб)
42212.00 (руб)
34318.00 (руб)

Ячейки колонки D являются вычисляемыми.

Макрос «Sum»

Позволяет суммировать данные по столбцам. Макрос помещается в целевую ячейку, куда нужно вывести сумму значений вышестоящих ячеек в колонке (нижестоящие ячейки не учитываются).

Код макроса в разметке выглядит следующим образом:

{{sum type="col" format="0.00"/}}

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

(% style="width:60%" %)
|=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
|2|3|1|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
|4|2|2|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
|3|4|3|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
|={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}

Результат рендеринга кода разметки:

Заголовок колонки AЗаголовок колонки BЗаголовок колонки CЗаголовок колонки D
2318.00 (руб)
42212.00 (руб)
34318.00 (руб)
9.00 (руб)9.00 (руб)6.00 (руб)38.00 (руб)

Как видим, внизу добавилась строка, в ячейки которой выводятся итоговые суммы значений по колонкам.

Макрос «Summary»

Данный макрос позволяет нам проводить агрегацию данных и создавать сводные таблицы из нескольких таблиц-источников, находящихся на одной странице. Совместим с макросами «Sum» и «Calc» и учитывает результаты их вычислений.

Макрос «Summary» имеет следующие настройки (см. рисунок):

1) поле «Type» отвечает за тип сводной таблицы – по заголовкам (heading) или по колонкам (column), подробности чуть ниже;
2) в поле «Title» задается имя сводной таблицы;
3) в поле «Summary Title» вносится название итоговой строки сводной таблицы;
4) поле «Format 1» отвечает за формат вывода данных первой колонки сводной таблицы (здесь же можно задать единицы измерения);
5) поле «Format 2» отвечает за формат вывода данных второй колонки сводной таблицы (здесь также можно задать единицы измерения).

Если полю «Type» присвоено значение "heading", то элементы группируются по заголовкам разделов, в которых находятся таблицы-источники. Если полю «Type» присвоено значение "column", то элементы группируются по значению первого столбца таблицы-источника. 

К примеру, на странице имеется две таблицы с однотипными данными, которые будут служить источниками для сводных таблиц. Используя макрос «Summary», мы легко можем агрегировать данные из них; при этом мы можем получить сводные таблицы двух типов:

2021-10-04_162823-2.png

Код макроса этих двух сводных таблиц в режиме разметки будет выглядеть так:

=== Сводные таблицы ===

{{summary type="heading" title="Сводка по разделам (фичам)" summarytitle="ИТОГО" format1="0.00 (часы)" format2="0.00 (уе)"/}}

{{summary type="column" title="Сводка по колонкам (участникам)" summarytitle="ИТОГО" format1="0.00 (часы)" format2="0.00 (уе)"/}}

Макрос «Summary» работает в пределах одной страницы. Если есть необходимость проводить агрегацию данных из разных вики-разделов и статей, используется более мощный инструмент – специальное расширение «Live Table»