Можно использовать API DOM, чтобы создать два типа таблиц, которые отличаются по структуре.
Неофициальная таблица (т.е. таблица) состоят из строк, которые содержат записи таблицы.
Формальная таблица содержит заголовок, тело и раздел нижнего колонтитула. Каждый раздел содержит строки, которые содержат записи таблицы.
Неофициальные таблицы полезны для большинства ваших потребностей создания отчетов. Используйте формальные таблицы в таблицах, заголовки которых или нижние колонтитулы содержат несколько строк.
Для получения дополнительной информации о неофициальных таблицах, см.:
Для получения дополнительной информации о формальных таблицах, см.:
Можно составить таблицу путем добавления двумерного числового массива или массива ячеек, содержащего встроенные в MATLAB® данные (текст и числа) и Объекты DOM (Text
Таблица
изображение
, и т.д.) к документу. append
функция преобразует массив в Table
возразите, добавляет его к документу и возвращает Table
объект, который можно затем отформатировать. Можно также создать Table
возразите непосредственно включением двумерного массива в его конструкторе.
В этом примере показано, как составить таблицу от числового массива и другую таблицу от массива ячеек различных типов объектов. Массив ячеек содержит магический квадрат, который представляется как внутренняя таблица. Массив ячеек также включает Text
конструктор Object, который использует AlertLevel
стиль шаблонов.
import mlreportgen.dom.*; doc = Document('test'); table1 = append(doc,magic(5)); table1.Border = 'single'; table1.ColSep = 'single'; table1.RowSep = 'single'; ca = {'text entry',Paragraph('a paragraph entry'); ... Text('Danger!','AlertLevel'),magic(4)}; table2 = Table(ca); append(doc,table2); close(doc); rptview(doc.OutputPath);
Можно использовать entry
функция с Table
объект добавить содержимое в запись таблицы или отформатировать запись. Этот подход полезен, когда необходимо отформатировать записи таблицы индивидуально. Например:
import mlreportgen.dom.*; doc = Document('test'); a = magic(5); [v,i] = max(a); [v1,i1] = max(max(a)); table = Table(a); text = table.entry(i(i1),i1).Children(1); text.Color = 'red'; append(doc,table); close(doc); rptview(doc.OutputPath);
Можно составить таблицу с нуля путем создания TableEntry
объекты, добавляя их к TableRow
объекты и добавление TableRow
объекты к Table
объект. Этот подход полезен, когда необходимо создать записи таблицы, которые охватывают несколько столбцов или строк, которые имеют различное количество записей. В этом примере показано, как составить таблицу с четырьмя столбцами и двумя строками. В первой строке таблицы вторая запись охватывает вторые и третьи столбцы.
import mlreportgen.dom.*; doc = Document('test'); table = Table(4); table.Border = 'single'; table.ColSep = 'single'; table.RowSep = 'single'; row = TableRow; append(row, TableEntry('entry 11')); te = TableEntry('entry 12-13'); te.ColSpan = 2; te.Border = 'single'; append(row, te); append(row, TableEntry('entry 14')); append(table,row); row = TableRow; for c = 1:4 append(row, TableEntry(sprintf('entry 2%i', c))); end append(table,row); append(doc,table); close(doc); rptview(doc.OutputPath);
Можно отформатировать таблицу программно, с помощью объектов формата DOM или свойств формата. Можно также использовать стили шаблонов. Для получения информации об этих методах форматирования и наследовании формата, см. Отчет Форматировать Подходы.
Можно использовать объекты формата, чтобы отформатировать таблицы или использовать Table
свойства формата, чтобы задать обычно используемые форматы таблицы. Этот пример использует:
Border
, ColSep
, и RowSep
объекты формата, чтобы задать красную границу таблицы и зеленый столбец и диафрагмы строки
Width
свойство формата, чтобы задать таблицу width
import mlreportgen.dom.*; d = Document('test','html'); table = Table(magic(5)); table.Style = {Border('inset','red','3px'), ... ColSep('single','green','1px'), ... RowSep('single','green','1px')}; table.Width = '50%'; append(d, table); close(d); rptview(d.OutputPath);
Используйте эти объекты формата и свойства формата, чтобы отформатировать таблицу.
Форматирование | Объект формата | Свойство формата |
---|---|---|
Ширина таблицы |
|
|
Цвет табличного фона |
|
|
Создайте границу вокруг таблицы |
|
|
Цвет границы |
|
|
Толщина границы |
|
|
Создайте оставленный, право, верхняя часть или нижняя граница таблицы |
| нет данных |
Сверните границы записи таблицы и записи таблицы (HTML) |
|
|
Создайте разделитель столбцов |
|
|
Цвет разделителя столбцов |
|
|
Толщина разделителя столбцов |
|
|
Создайте диафрагму строки |
|
|
Цвет разделителя строки |
|
|
Толщина диафрагмы строки |
|
|
Таблица Indent от левого поля |
|
|
Пробел прежде или после таблицы |
| нет данных |
Пробел направо от таблицы |
| нет данных |
Выровняйте по левому краю таблицу, право или центр |
|
|
Задайте направление потока записи таблицы (слева направо или справа налево) |
|
|
Измените размер столбцов таблицы, чтобы соответствовать содержимому |
| нет данных |
Table
объект имеет свойства, которые позволяют вам задавать тот же формат или набор форматов для всех его записей.
Форматирование | Свойство объекта таблицы |
---|---|
Выровняйте записи вертикально (верхняя часть, середина, нижняя часть) |
|
Выровняйте записи горизонтально (оставленный, право, центр) |
|
Создайте пространство (дополнение) между контуром записи и содержимым |
|
Примените набор объектов формата ко всем записям таблицы |
|
Можно использовать mlreportgen.dom.TextOrientation
объект формата, чтобы сделать текст в записи таблицы вертикальным или горизонтальным.
Используйте KeepLinesTogether
и KeepWithNext
форматы абзаца, чтобы держать вместе табличный заголовок и таблицу на той же странице. Этот пример создает табличный заголовок, создает табличное содержимое и делает табличную строку заголовка полужирной, использующей индексацией записи таблицы. Чтобы сохранить таблицу на той же странице, код задает KeepLinesTogether
и KeepWithNext
для всех строк кроме последней строки. Последняя строка имеет только KeepLinesTogether
установите и не KeepWithNext
. Это препятствует тому, чтобы таблица была обеспечена, чтобы остаться с абзацем, который следует.
import mlreportgen.dom.* rpt = Document('test','docx'); p = Paragraph('Table 1'); p.Style = {Bold,KeepLinesTogether,KeepWithNext}; append(rpt, p); ca = {Paragraph('Col 1'),Paragraph('Col 2'); ... Paragraph('data 11'),Paragraph('Data 12'); ... Paragraph('data 21'),Paragraph('Data 22')}; ca{1,1}.Children(1).Bold = true; ca{1,2}.Children(1).Bold = true; for r = 1:2 for c = 1:2 ca{r, c}.Style = {KeepLinesTogether,KeepWithNext}; end end for c = 1:2 ca{3, c}.Style = {KeepLinesTogether}; end append(rpt, ca); close(rpt); rptview(rpt.OutputPath);
Можно отформатировать таблицы с помощью существующего стиля Word в шаблоне или стиле шаблонов, который вы изменяете или добавляете.
Чтобы задать стиль таблицы, одним словом, обрабатывают по шаблону, запускаются при помощи этих шагов.
Откройте шаблон Word, используемый с отчетом.
Откройте панель Styles.
Нажмите кнопку Manage Styles.
Нажмите New Style.
В диалоговом окне Create New Style from Formatting, набор Style type к Table
.
Для получения дополнительной информации об использовании стилей Word с Объектами DOM смотрите, Изменяют Стили в Шаблоне Microsoft Word.
Можно отформатировать таблицы HTML и PDF с помощью стиля CSS, заданного в шаблоне.
Чтобы задать стиль таблицы в шаблоне HTML или PDF, используйте селектор на table
стиль. Например:
table.MyTable { border-style: solid; border-bottom-color: rgb(128, 128, 128); border-bottom-width: thin; border-collapse: collapse; }
Используйте дочерний селектор CSS (>
) задавать формат дочерних элементов таблицы. Например, этот код CSS задает формат записей таблицы (td
элементы) таблицы, стилем которой является MyTable
.
table.MyTable > tbody > tr > td { font-family: Arial, Helvetica, sans-serif; font-size: 11pt; text-align: center; }
Если вы задали стиль таблицы в шаблоне, можно применить его к Table
возразите в своей программе отчета любому в качестве второго аргумента в Table
конструктор Object или путем установки его на StyleName
свойство Table
объект. Например, предположите, что вы задали стили под названием BodyPara
, TableTitle
, и RuledTable
в шаблоне для вашего отчета. Этот пример задает имена стиля в Paragraph
конструктор, в StyleName
свойство Paragraph
объект, и в Table
конструктор.
import mlreportgen.dom.*; rank = 5; rpt = Document('MyReport','html','MyTemplate'); p = Paragraph('Here is a magic square or rank 5:','BodyPara'); append(rpt,p); p = Paragraph(sprintf('Rank %d MagicSquare',rank)); p.StyleName = 'TableTitle'; append(rpt,Table(magic(rank),'RuledTable')); close(rpt); rptview(rpt.OutputPath);
Можно использовать программируемые форматы, чтобы заменить стили, заданные в основанном на шаблоне стиле таблицы. Например, предположите, что вы задаете стиль таблицы под названием UnruledTable
в вашем шаблоне, чтобы составить таблицы без любых границ или столбец или диафрагмы строки. Можно затем заменить стиль в программе отчета, чтобы чертить систему координат вокруг таблицы.
import mlreportgen.dom.*; rpt = Document('MyReport','html','MyTemplate'); table = Table(magic(5),'UnruledTable'); table.Border = 'single'; append(rpt,table); close(rpt); rptview(rpt.OutputPath);
Чтобы составить формальную таблицу, используйте те же основные подходы в качестве с неофициальной таблицей, за исключением того, что вы используете mlreportgen.domlFormalTable
конструктор, чтобы создать формальную таблицу. Конструктор опционально принимает двумерный числовой массив или массив ячеек данных MATLAB для тела, заголовка и разделов нижнего колонтитула.
Если вы создаете формальную таблицу полностью или частично с нуля, можно использовать FormalTable
возразите функциям appendHeaderRow
и appendBodyRow
добавлять строки к табличному заголовку и разделам нижнего колонтитула. FormalTable.append
функция добавляет строку к разделу тела. В качестве альтернативы можно получить доступ к разделу с помощью Header
, Body
, или Footer
свойства FormalTable
объект.
import mlreportgen.dom.* d = Document('test'); t = FormalTable({'a','b';'c','d'}); r = TableRow(); append(r,TableEntry('Column 1')); append(r,TableEntry('Column 2')); append(t.Header,r); append(d,t); close(d); rptview(d.OutputPath);
Можно отформатировать формальную таблицу программно, с помощью объектов формата DOM или свойств формата. Можно также использовать стили шаблонов. Для получения информации об этих методах форматирования и наследовании формата, см. Отчет Форматировать Подходы.
Можно отформатировать формальную таблицу программно тот же способ, которым вы форматируете неофициальную таблицу. Объекты формата и свойства, которые применяются к неофициальной таблице также, применяются к формальным таблицам. Кроме того, можно отформатировать заголовок, тело и разделы нижнего колонтитула неофициальной таблицы программно. Если вы задаете формат для таблицы и одного из ее разделов, значение, которое вы задаете для раздела, заменяет значение, которое вы задаете для таблицы в целом. Не все формальные форматы таблицы применяются к формальным табличным разделам. Например, вы не можете расположить с отступом заголовок, тело или раздел нижнего колонтитула независимо от содержания таблицы. Другими словами, OuterLeftMargin
свойство не применяется к формальным табличным разделам.
Используйте ту же процедуру в определении формальных стилей таблицы в шаблонах, как вы используете в определении неофициальных стилей таблицы.
Можно применить стиль таблицы к формальной таблице и к каждому из ее разделов. Если вы применяете стиль таблицы к самой таблице и к одному из ее разделов (например, заголовок), стиль раздела заменяет стиль таблицы.
Если вы применяете стиль таблицы к одному или нескольким разделам Word формальная таблица, задаете ширины каждого из столбцов таблицы. В противном случае столбцы разделов не могут выстроиться в линию.
Если вы хотите создать таблицу с нуля, можно использовать TableRow
конструктор, чтобы создать строки. Отформатируйте строки и затем добавьте строки к таблице, которую вы создаете.
mlreportgen.dom.TableRow
конструктор не берет аргументов и возвращает TableRow
объект. Можно затем создать и добавить TableEntry
объекты к объекту завершить конструкцию строки. Если вы создаете строку, можно добавить строку в таблицу, с помощью append
функция. Этот пример составляет таблицу 2D столбца с двумя строками.
import mlreportgen.dom.* rpt = Document('test'); table = Table(2); row = TableRow(); append(row,TableEntry('Col1')); append(row,TableEntry('Col2')); append(table,row); row = TableRow(); append(row,TableEntry('data11')); append(row,TableEntry('data12')); append(table,row); append(rpt,table); close(rpt); rptview(rpt.OutputPath);
Используйте эти объекты формата и свойства формата, чтобы отформатировать строку таблицы.
Форматирование высоты строки | Объект формата | Свойство формата |
---|---|---|
Задайте точную высоту строки |
|
|
Задайте минимальную высоту строки (только Word) |
| нет данных |
Заставьте эту строку повторяться как строка заголовка, когда таблица будет течь через страницы |
| нет данных |
Позвольте этой строке колебаться между контуром страницы |
| нет данных |
К столбцам таблицы формата можно использовать mlreportgen.dom.TableColSpecGroup
объекты, или одни или с mlreportgen.dom.TableColSpecGroup
объекты. Используйте TableColSpecGroup
объект задать формат группы смежных столбцов таблицы. Используйте TableColSpec
возразите, чтобы заменить, для некоторых столбцов таблицы, некоторых или всех форматов группы столбцов. В этом примере, TableColSpecGroup
свойство задает ширину столбца 0,2-дюймовых и зеленого текста. TableColSpec
переопределения те форматы для первого столбца, задавая ширину 0,5 дюймов и полужирный, красный текст.
import mlreportgen.dom.* rpt = Document('test'); rank = 5; table = Table(magic(rank)); table.Border = 'single'; table.BorderWidth = '1px'; grps(1) = TableColSpecGroup; grps(1).Span = rank; grps(1).Style = {Width('0.2in'),Color('green')}; specs(1) = TableColSpec; specs(1).Span = 1; specs(1).Style = {Width('0.5in'),Bold,Color('red')}; grps(1).ColSpecs = specs; table.ColSpecGroups = grps; append(rpt,table); close(rpt); rptview(rpt.OutputPath);
Чтобы изменить размер столбцов, чтобы соответствовать самому широкому содержимому записей таблицы в столбце, включайте ResizeToFitContents
объект в Style
свойство таблицы.
Если необходимо создать таблицу с нуля, можно использовать mlreportgen.dom.TableEntry
конструктор, чтобы создать записи таблицы. Можно затем отформатировать записи таблицы и добавить их в строки таблицы, которые можно затем добавить в таблицу, которую вы создаете. Если необходимо отформатировать записи в таблице, которую вы составили от массива ячеек, можно использовать TableEntry
или TableRow
функциональный entry
получить доступ к записи, которую можно затем отформатировать.
Используйте TableEntry
конструктор, чтобы создать запись таблицы. Можно опционально использовать конструктора, чтобы задать эти виды содержимого записи:
CharArray
Любой из этих видов Объектов DOM:
Paragraph
Text
Image
Table
OrderedList
UnorderedList
CustomElement
Можно использовать объекты формата или TableEntry
свойства формата, чтобы отформатировать запись таблицы программно.
Форматирование | Объект формата | Свойство формата |
---|---|---|
Создайте границу вокруг записи |
|
|
Цвет границы |
|
|
Толщина границы |
|
|
Создайте оставленный, право, верхняя часть или нижняя граница записи |
| нет данных |
Выровняйте верхнюю часть содержимого записи, нижнюю часть, середина |
|
|
Пробел между контуром записи и содержимым записи |
|
|
Пробел между содержимым записи и его верхней частью, нижней частью, правом или покинутыми контурами |
| нет данных |
Заставьте запись охватывать несколько столбцов |
|
|
Заставьте запись охватывать несколько строк |
|
|
Можно задать форматирование для всех записей таблицы в таблице, использовать TableEntriesStyle
свойство Table
или FormalTable
объект. Например, можно установить форматирование границы.
import mlreportgen.dom.* t = Table(magic(5)); t.TableEntriesStyle = {Border('solid','black','1px')};
Свойства вы устанавливаете для TableEntry
объект более приоритетен по сравнению с TableEntriesStyle
объекты формата.
Для отчетов HTML можно использовать стили, заданные в таблице стилей шаблона HTML, чтобы отформатировать записи таблицы. При определении стиля записи таблицы используйте td
селектор элемента. Например:
td.TableEntryWithBorder {
border:5px solid red;
}
Чтобы применить заданный шаблоном стиль к записи таблицы, установите TableEntry
объект StyleName
свойство к имени стиля или задает имя стиля в качестве второго аргумента к TableEntry
конструктор. Например:
te = TableEntry('Hello World','TableEntryWithBorder');
mlreportgen.dom.AllowBreakAcrossPages
| mlreportgen.dom.ColSep
| mlreportgen.dom.FlowDirection
| mlreportgen.dom.FormalTable
| mlreportgen.dom.RepeatAsHeaderRow
| mlreportgen.dom.ResizeToFitContents
| mlreportgen.dom.RowHeight
| mlreportgen.dom.RowSep
| mlreportgen.dom.Table
| mlreportgen.dom.TableBody
| mlreportgen.dom.TableColSpec
| mlreportgen.dom.TableColSpecGroup
| mlreportgen.dom.TableEntry
| mlreportgen.dom.TableFooter
| mlreportgen.dom.TableHeader
| mlreportgen.dom.TableHeaderEntry
| mlreportgen.dom.TableRow