Исходный код вики Работа с таблицами

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

Последние авторы
1 {{box cssClass="floatinginfobox" title="**Содержание:**"}}
2 {{toc start="2"/}}
3 {{/box}}
4
5
6 Наша замечательная XWiki позволяет создавать и редактировать таблицы, а также импортировать готовые. Можно настраивать отображение как таблиц целиком, так и отдельных ячеек, разбивать и объединять ячейки, отмечать заголовки, включать сортировку и фильтрацию данных, производить вычисления.
7
8
9 == Создание и редактирование таблиц ==
10
11 Для создания используйте кнопку [[image:2021-09-24_142336.png]](% style="color:#16a085" %)[Таблица](%%), которая вызывает окно мастера таблиц.
12
13
14 [[~[~[image:2021-09-24_141353-2.png~]~]>>attach:2021-09-24_141353-2.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]]
15
16
17 На вкладке **«Свойства таблицы»** мы задаем число строк и столбцов, выбираем расположение заголовков. Также здесь можно задавать размеры таблицы, толщину границ и отступы. В блоке «Выравнивание» настраивается обтекание текстом. На вкладке **«Дополнительно»** можно задать CSS-стиль оформления, а также присвоить таблице уникальный идентификатор, который используется для автоматической нумерации.
18
19 Чтобы отредактировать эти свойства, можно в любой момент вернуться к мастеру, используя пункт **«Свойства таблицы»** контекстного меню таблицы в режиме редактирования.
20
21
22 == Настройка таблиц ==
23
24 Для настройки и редактирования свойств таблицы используйте ее контекстное меню. Оно позволяет добавлять строки и колонки, разбивать и объединять ячейки. Каждой ячейке мы можем задавать индивидуальные свойства – высоту и ширину, цвет фона и границ, выравнивание и переносы текста, а также присваивать свойства заголовка.
25
26
27 [[~[~[image:2021-09-24 15_04_40-2021-09-24 14_51_43.png~]~]>>attach:2021-09-24 15_04_40-2021-09-24 14_51_43.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]]
28
29
30 Кроме мастера создания и редактирования таблиц, мы можем использовать язык разметки (доступ с помощью кнопки [[image:2021-09-24_100802.png]] (% style="color:#16a085" %)[Источник](%%) панели инструментов редактора). Приведенная на рисунке выше таблица в разметке будет выглядеть следующим образом:
31
32 (% bis_skin_checked="1" class="box" %)
33 (((
34 ##~(% style="width:60%" %)
35 ~|=Заголовок колонки 1|=Заголовок колонки 2|=Заголовок колонки 3|=Заголовок колонки 4
36 ~|ячейка 1-1|ячейка 1-2|ячейка 1-3|ячейка 1-4
37 ~|~(% colspan="2" rowspan="1" %)ячейка 2-1 + ячейка 2-2|ячейка 2-3|ячейка 2-4
38 ~|ячейка 3-1|ячейка 3-2|ячейка 3-3|ячейка 3-4
39 ~|ячейка 4-1|ячейка 4-2|ячейка 3-3|ячейка 4-4##
40 )))
41
42 Результат рендеринга разметки:
43
44 (% style="width:60%" %)
45 |=Заголовок колонки 1|=Заголовок колонки 2|=Заголовок колонки 3|=Заголовок колонки 4
46 |ячейка 1-1|ячейка 1-2|ячейка 1-3|ячейка 1-4
47 |(% colspan="2" rowspan="1" %)ячейка 2-1 + ячейка 2-2|ячейка 2-3|ячейка 2-4
48 |ячейка 3-1|ячейка 3-2|ячейка 3-3|ячейка 3-4
49 |ячейка 4-1|ячейка 4-2|ячейка 3-3|ячейка 4-4
50
51 == Размещение данных ==
52
53 Таблицы можно заполнять вручную с клавиатуры, либо используя буфер обмена. В ячейки мы можем помещать произвольную текстовую информацию, ссылки на контент, изображения, и даже макросы. Кроме того, наша платформа позволяет размещать внутри ячеек вложенные таблицы.
54
55 Проиллюстрируем вышесказанное:
56
57 (% style="width:60%" %)
58 |=(% style="width: 624px;" %)Заголовок колонки 1|=(% style="width: 330px;" %)Заголовок колонки 2
59 |(% style="width:624px" %)(% bis_skin_checked="1" %)
60 (((
61 Текст с ##**форматированием**##:
62
63 * пункт;
64 ** подпункт;
65 * пункт.
66
67 (% bis_skin_checked="1" class="box infomessage" %)
68 (((
69 информационный блок
70 )))
71
72 (% class="wikigeneratedid" %)
73 и т.п...
74 )))|(% style="text-align:center; vertical-align:middle; width:330px" %)[[ссылка на вики-страницу>>doc:Stati.Funktsii-XWiki.Annotirovanie-dokumentov-v-XWiki.WebHome||target="_blank"]]
75 |(% colspan="1" rowspan="1" style="width:624px" %)(% bis_skin_checked="1" %)
76 (((
77 видео:
78
79 {{video url="https://www.youtube.com/watch?v=4bNkU3qbrHA&ab_channel=AwesomeOpenSource"/}}
80
81
82 )))|(% style="width:330px" %)(% bis_skin_checked="1" %)
83 (((
84 рисунок:
85
86 [[image:XWiki_1.png]]
87 )))
88 |(% style="width:624px" %)(% bis_skin_checked="1" %)
89 (((
90 Вложенная таблица:
91
92 |=Заголовок колонки 1|=Заголовок колонки 2|=Заголовок колонки 3|=Заголовок колонки 4
93 |ячейка 1-1|ячейка 1-2|ячейка 1-3|ячейка 1-4
94 |(% colspan="2" rowspan="1" %)ячейка 2-1 + ячейка 2-2|ячейка 2-3|ячейка 2-4
95 |ячейка 3-1|ячейка 3-2|ячейка 3-3|ячейка 3-4
96 |ячейка 4-1|ячейка 4-2|ячейка 3-3|(% bis_skin_checked="1" %)(% bis_skin_checked="1" %)
97 (((
98 |=(% style="text-align: left; vertical-align: top;" %)еще|=(% style="text-align: left; vertical-align: top;" %)одна|=(% style="text-align: left; vertical-align: top;" %)вложен-ная
99 | | |
100 | | |
101 | | |
102 )))
103 )))|(% style="width:330px" %)(% bis_skin_checked="1" %)
104 (((
105 картинка по url:
106
107 [[image:https://w-dog.ru/wallpapers/10/12/429061979999934/priroda-derevo-vetki-listya-solnechnyj-svet-luchi-krasota.jpg]]
108 )))
109 |(% style="width:624px" %)(% bis_skin_checked="1" %)
110 (((
111 макрос **«Status»**:
112
113 {{cl-plate-status status="false"/}}
114 )))|(% style="width:330px" %)(% bis_skin_checked="1" %)
115 (((
116 макрос «HTML» с кодом чекбокса:
117
118 {{html clean="false"}}
119 <label><input type="checkbox" checked> DONE</label>
120 {{/html}}
121 )))
122
123 == Импорт готовых таблиц ==
124
125 Импортировать готовые таблицы можно двумя способами:
126
127 1) используя буфер обмена – копируя таблицу в исходном документе и вставляя ее в вики-статью в режиме редактирования;
128 2) с помощью отдельной процедуры импорта – создавая документ по специальному шаблону «Страница из Office» и загружая в него файл с исходной таблицей, процедура импорта описана в статье [["Импорт документов из файлов Office">>doc:Stati.Funktsii-XWiki.Import-dokumentov-iz-failov-Office.WebHome]].
129
130
131 == Сортировка и фильтрация данных ==
132
133 Наша платформа позволяет [[включать сортировку и фильтрацию>>attach:2021-09-27_102451-1.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]] данных в таблицах, для этого используется макрос **«Sortable Table»**. В нем задаются два параметра:
134
135 1) "Sortable" ((% style="color:#2980b9" %)yes(%%)/(% style="color:#2980b9" %)no(%%)) – отвечает за сортировку данных по колонкам;
136 2) "Filtrable" ((% style="color:#2980b9" %)yes(%%)/(% style="color:#2980b9" %)no(%%)) – добавляет к заголовку таблицы поля фильтрации значений.
137
138 (% bis_skin_checked="1" class="box warningmessage" %)
139 (((
140 **Внимание!** (% style="color:#000000" %)Действие макроса **«Sortable Table»** затрагивает //все //таблицы на странице, т.е. они все становятся сортируемыми и/или фильтруемыми независимо от позиции макроса.
141 )))
142
143 == Простые вычисления в таблицах ==
144
145 Мы можем проводить вычисления в таблицах, для этого в арсенале платформы есть специальные макросы.
146
147 === Макрос «**Calc»** ===
148
149 Позволяет производить в строках таблиц простые вычисления по заданным формулам. [[Алгоритм использования таков>>attach:2021-09-27_154947-2.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]]:
150
151 1. Помещаем макрос в целевую ячейку, куда хотим вывести результаты вычислений.
152 1. В поле "Formula" макроса задаем формулу расчета с указанием ячеек-источников данных. Например, формула (% style="color:#2980b9" %)$A*$B+2*$C(%%) вычисляет произведение значений в первых двух ячейках текущей строки и прибавляет к нему удвоенное значение третьей. Символы A,B и C обозначают позицию ячейки (A – ячейка первой колонки, B – второй и т.д.); вместо заглавных латинских букв можно использовать выражение (% style="color:#2980b9" %)row.get(#)(%%), где в скобках дается номер колонки; в этом случае формула будет выглядеть так: (% style="color:#2980b9" %)$row.get(1)*$row.get(2)+2*$row.get(3)(%%).
153 1. В поле "Format" задается формат вывода результат вычислений – число знаков после точки (по умолчанию(% style="color:#d35400" %) (% style="color:#2980b9" %)0.00(%%)), также здесь можно задать единицы измерения.
154
155 Код макроса в разметке выглядит следующим образом:
156
157 (% bis_skin_checked="1" class="box" %)
158 (((
159 ##~{~{calc formula="$A*$B+2*$C" format="0.00"/}}##
160 )))
161
162 (% class="wikigeneratedid" %)
163 Рассмотрим пример таблицы с вычисляемыми строками в разметке.
164
165 (% bis_skin_checked="1" class="box" %)
166 (((
167 ##~(% style="width:60%" %)
168 ~|=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
169 ~|2|3|1|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
170 ~|4|2|2|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
171 ~|3|4|3|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}##
172 )))
173
174 (% class="wikigeneratedid" %)
175 Результат рендеринга представлен ниже:
176
177 (% style="width:60%" %)
178 |=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
179 |2|3|1|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
180 |4|2|2|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
181 |3|4|3|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
182
183 (% class="wikigeneratedid" %)
184 Ячейки колонки D являются вычисляемыми.
185
186 === Макрос «**Sum»** ===
187
188 Позволяет суммировать данные по столбцам. Макрос помещается в целевую ячейку, куда нужно вывести сумму значений вышестоящих// //ячеек в колонке (нижестоящие ячейки не учитываются).
189
190 Код макроса в разметке выглядит следующим образом:
191
192 (% bis_skin_checked="1" class="box" %)
193 (((
194 ##~{~{sum type="col" format="0.00"/}}##
195 )))
196
197 Добавим к таблице из предыдущего примера строку итогов, где будут суммироваться данные по колонкам. Для выделения итоговой строки, с помощью символа {{code}}={{/code}} присвоим ее ячейкам признак заголовка. Код таблицы в разметке будет выглядеть так:
198
199 (% bis_skin_checked="1" class="box" %)
200 (((
201 ##~(% style="width:60%" %)
202 ~|=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
203 ~|2|3|1|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
204 ~|4|2|2|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
205 ~|3|4|3|~{~{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
206 ~|=~{~{sum type="col" format="0.00 (руб)"/}}|=~{~{sum type="col" format="0.00 (руб)"/}}|=~{~{sum type="col" format="0.00 (руб)"/}}|=~{~{sum type="col" format="0.00 (руб)"/}}##
207 )))
208
209 Результат рендеринга кода разметки:
210
211 (% style="width:60%" %)
212 |=Заголовок колонки A|=Заголовок колонки B|=Заголовок колонки C|=Заголовок колонки D
213 |2|3|1|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
214 |4|2|2|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
215 |3|4|3|{{calc formula="$A*$B+2*$C" format="0.00 (руб)"/}}
216 |={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}|={{sum type="col" format="0.00 (руб)"/}}
217
218 Как видим, внизу добавилась строка, в ячейки которой выводятся итоговые суммы значений по колонкам.
219
220 === Макрос «**Summary»** ===
221
222 Данный макрос позволяет нам проводить агрегацию данных и создавать сводные таблицы из нескольких таблиц-источников, находящихся на одной странице. Совместим с макросами **«Sum»** и **«Calc»** и учитывает результаты их вычислений.
223
224 Макрос **«Summary» **имеет следующие настройки ([[см. рисунок>>attach:2021-10-04 15_55_17-2021-10-04_153233.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]]):
225
226 (% style="color:#c0392b" %)**1)**(%%) поле «Type» отвечает за тип сводной таблицы – по заголовкам ((% style="color:#2980b9" %)heading(%%)) или по колонкам ((% style="color:#2980b9" %)column(%%)), подробности чуть ниже;
227 (% style="color:#c0392b" %)**2)**(%%) в поле «Title» задается имя сводной таблицы;
228 (% style="color:#c0392b" %)**3)**(%%) в поле «Summary Title» вносится название итоговой строки сводной таблицы;
229 (% style="color:#c0392b" %)**4)**(%%) поле «Format 1» отвечает за формат вывода данных первой колонки сводной таблицы (здесь же можно задать единицы измерения);
230 (% style="color:#c0392b" %)**5)**(%%) поле «Format 2» отвечает за формат вывода данных второй колонки сводной таблицы (здесь также можно задать единицы измерения).
231
232 Если полю «Type» присвоено значение "(% style="color:#2980b9" %)heading(%%)", то элементы группируются по заголовкам разделов, в которых находятся таблицы-источники. Если полю «Type» присвоено значение "(% style="color:#2980b9" %)column(%%)", то элементы группируются по значению первого столбца таблицы-источника.
233
234 К примеру, на странице имеется [[две таблицы с однотипными данными>>attach:2021-10-04_153531.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]], которые будут служить источниками для сводных таблиц. Используя макрос **«Summary»**, мы легко можем агрегировать данные из них; при этом мы можем получить сводные таблицы двух типов:
235
236 [[~[~[image:2021-10-04_162823-2.png~]~]>>attach:2021-10-04_162823-2.png||onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;"]]
237
238 Код макроса этих двух сводных таблиц в режиме разметки будет выглядеть так:
239
240 (% bis_skin_checked="1" class="box" %)
241 (((
242 ##=== Сводные таблицы ===##
243
244 ##~{~{summary type="heading" title="Сводка по разделам (фичам)" summarytitle="ИТОГО" format1="0.00 (часы)" format2="0.00 (уе)"/}}##
245
246 ##~{~{summary type="column" title="Сводка по колонкам (участникам)" summarytitle="ИТОГО" format1="0.00 (часы)" format2="0.00 (уе)"/}}##
247 )))
248
249 (% class="wikigeneratedid" id="HLiveTables" %)
250 Макрос **«Summary» **работает в пределах одной страницы. Если есть необходимость проводить агрегацию данных из разных вики-разделов и статей, используется более мощный инструмент – специальное расширение «**Live Table»**.
Подпишитесь на новые материалы!
Подпишитесь на нашу рассылку и узнавайте о новых статьях, событиях и других материалах.
Нажимая на кнопку, вы даете согласие на обработку своих персональных данных согласно 152-ФЗ. Подробнее