Работа с таблицами
Наша замечательная XWiki позволяет создавать и редактировать таблицы, а также импортировать готовые. Можно настраивать отображение как таблиц целиком, так и отдельных ячеек, разбивать и объединять ячейки, отмечать заголовки, включать сортировку и фильтрацию данных, производить вычисления.
Создание и редактирование таблиц
Для создания используйте кнопку [Таблица], которая вызывает окно мастера таблиц.
На вкладке «Свойства таблицы» мы задаем число строк и столбцов, выбираем расположение заголовков. Также здесь можно задавать размеры таблицы, толщину границ и отступы. В блоке «Выравнивание» настраивается обтекание текстом. На вкладке «Дополнительно» можно задать CSS-стиль оформления, а также присвоить таблице уникальный идентификатор, который используется для автоматической нумерации.
Чтобы отредактировать эти свойства, можно в любой момент вернуться к мастеру, используя пункт «Свойства таблицы» контекстного меню таблицы в режиме редактирования.
Настройка таблиц
Для настройки и редактирования свойств таблицы используйте ее контекстное меню. Оно позволяет добавлять строки и колонки, разбивать и объединять ячейки. Каждой ячейке мы можем задавать индивидуальные свойства – высоту и ширину, цвет фона и границ, выравнивание и переносы текста, а также присваивать свойства заголовка.
Кроме мастера создания и редактирования таблиц, мы можем использовать язык разметки (доступ с помощью кнопки [Источник] панели инструментов редактора). Приведенная на рисунке выше таблица в разметке будет выглядеть следующим образом:
(% 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 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Текст с форматированием:
и т.п... | ссылка на вики-страницу | ||||||||||||||||||||||||||||||||
видео:
| рисунок: | ||||||||||||||||||||||||||||||||
Вложенная таблица:
| картинка по url: | ||||||||||||||||||||||||||||||||
макрос «Status»: false | макрос «HTML» с кодом чекбокса: |
Импорт готовых таблиц
Импортировать готовые таблицы можно двумя способами:
1) используя буфер обмена – копируя таблицу в исходном документе и вставляя ее в вики-статью в режиме редактирования;
2) с помощью отдельной процедуры импорта – создавая документ по специальному шаблону «Страница из Office» и загружая в него файл с исходной таблицей, процедура импорта описана в статье "Импорт документов из файлов Office".
Сортировка и фильтрация данных
Наша платформа позволяет
данных в таблицах, для этого используется макрос «Sortable Table». В нем задаются два параметра:1) "Sortable" (yes/no) – отвечает за сортировку данных по колонкам;
2) "Filtrable" (yes/no) – добавляет к заголовку таблицы поля фильтрации значений.
Простые вычисления в таблицах
Мы можем проводить вычисления в таблицах, для этого в арсенале платформы есть специальные макросы.
Макрос «Calc»
Позволяет производить в строках таблиц простые вычисления по заданным формулам.
:- Помещаем макрос в целевую ячейку, куда хотим вывести результаты вычислений.
- В поле "Formula" макроса задаем формулу расчета с указанием ячеек-источников данных. Например, формула $A*$B+2*$C вычисляет произведение значений в первых двух ячейках текущей строки и прибавляет к нему удвоенное значение третьей. Символы A,B и C обозначают позицию ячейки (A – ячейка первой колонки, B – второй и т.д.); вместо заглавных латинских букв можно использовать выражение row.get(#), где в скобках дается номер колонки; в этом случае формула будет выглядеть так: $row.get(1)*$row.get(2)+2*$row.get(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 |
---|---|---|---|
2 | 3 | 1 | 8.00 (руб) |
4 | 2 | 2 | 12.00 (руб) |
3 | 4 | 3 | 18.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 |
---|---|---|---|
2 | 3 | 1 | 8.00 (руб) |
4 | 2 | 2 | 12.00 (руб) |
3 | 4 | 3 | 18.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», мы легко можем агрегировать данные из них; при этом мы можем получить сводные таблицы двух типов:Код макроса этих двух сводных таблиц в режиме разметки будет выглядеть так:
=== Сводные таблицы ===
{{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».