Можно использовать mlreportgen.dom.Table
, mlreportgen.dom.FormalTable
, mlreportgen.dom.MATLABTable
, или mlreportgen.report.BaseTable
объекты для создания таблицы в отчете. См. «Выбор типа таблицы». Формат таблиц любого из этих типов или элементов (раздел, строка, группа столбцов или запись) можно изменить с помощью следующих подходов:
Формат содержимого перед созданием таблицы. Для примера форматируйте номера в MATLAB® прежде чем использовать их для создания таблицы. См. раздел «Номера форматов в таблице».
Форматируйте объекты DOM перед созданием таблицы из них. Для примера форматируйте mlreportgen.dom.Paragraph
объект перед использованием для создания записи таблицы.
Измените стиль шаблона по умолчанию или создайте пользовательский стиль шаблона для элемента таблицы или таблицы. См. раздел «Формат таблиц с использованием определяемых шаблоном стилей».
Переопределите стили шаблонов с помощью свойств формата и объектов формата с объектом, который представляет таблицу или элемент таблицы. Смотрите Формат таблиц программно.
Для получения информации, относящейся к форматированию MATLABTable
см. раздел Создание таблиц из таблиц MATLAB. Для получения информации, относящейся к форматированию BaseTable
см. раздел Создание базовых таблиц Report API.
Для объекта таблицы, объекта элемента таблицы или объекта, содержащегося в объекте элемента таблицы, формат, заданный свойством формата или объектом формата, переопределяет эквивалентный формат, заданный стилем на основе шаблона. Формат, заданный для объекта, переопределяет эквивалентный формат, заданный объектом контейнера. Для примера, если запись таблицы содержит mlreportgen.dom.Paragraph
объект, цвет текста, заданный для Paragraph
объект переопределяет цвет, заданный для строки, которая его содержит. Цвет строки переопределяет цвет, заданный для таблицы, содержащей строку. См. раздел Формат наследования.
Таблицы и элементы таблицы имеют стиль по умолчанию, заданный шаблоном. Рассмотрите настройку стиля, заданного шаблоном, если индивидуальная настройка применяется к нескольким таблицам и вам удобно работать со стилями в Microsoft® Слово или редактирование таблиц стилей (CSS) для отчетов HTML или PDF.
Формат таблицы можно изменить путем применения пользовательского стиля Microsoft Word к таблице. Если вы применяете стиль таблицы к одному или нескольким разделам формальной таблицы Word, задайте ширины каждого из столбцов таблицы. В противном случае столбцы разделов могут не выровняться.
Для определения стиля таблицы в таблице стилей Word:
Создайте шаблон Microsoft Word. Дополнительные сведения о создании шаблона Microsoft Word см. в разделе Создание шаблона Microsoft Word.
Откройте файл шаблона Word одним из следующих методов:
В MATLAB, в Current Folder pane, щелкните правой кнопкой мыши файл шаблона и нажмите Open Outside MATLAB.
За пределами MATLAB щелкните правой кнопкой мыши файл и выберите Open.
Примечание
Не кликните файл шаблона Word дважды, чтобы открыть его. Двойной щелчок по файлу открывает файл документа Word, в котором используется шаблон.
В Word на вкладке Home, в группе Styles, щелкните значок Styles.
Нажмите кнопку Manage Styles.
Нажмите New Style.
В диалоговом окне «Создание нового стиля из форматирования» выполните следующие действия.
Задайте Name.
Установите Style type значение Table
.
В Style based on выберите базовый стиль для нового стиля.
В Formatting разделе укажите форматирование и части таблицы, к которым применяется форматирование.
Выберите New documents based on this template и нажмите OK.
В диалоговом окне Manage Styles выберите New documents based on this template и нажмите OK.
Сохраните шаблон.
Пример форматирования с использованием шаблона Word см. в разделе Создание Zebra-полосатой таблицы.
Форматировать HTML и PDF таблицы можно с помощью стиля CSS, заданного в шаблоне. Для создания шаблона HTML или PDF см. раздел Создание шаблона HTML или PDF.
Чтобы определить стиль таблицы в шаблоне HTML или PDF, используйте table
селектор с именем класса. Например, этот код CSS задает стиль для таблиц с MyTable
классов.
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 td { font-family: Arial, Helvetica, sans-serif; font-size: 11pt; text-align: center; }
См. раздел «Изменение стилей в шаблонах HTML и изменение стилей в шаблонах PDF».
Для получения информации об редактировании CSS смотрите документацию, такую как https://developer.mozilla.org/en-US/docs/Web/CSS/Reference.
Пример форматирования с использованием HTML шаблона см. в разделе Создание полосатого по Зебре Таблицы.
После определения стиля в шаблоне его можно применить к объекту, который представляет таблицу или элемент таблицы в программе отчетов. Предоставьте стиль в качестве аргумента конструктору объекта или присвойте его StyleName
свойство объекта. Стиль можно применить к разделу заголовка, тела или нижнего колонтитула mlreportgen.dom.FormalTable
или mlreportgen.dom.MATLABTable
объект путем назначения стиля StyleName
свойство mlreportgen.dom.TableHeader
, mlreportgen.dom.TableBody
, или mlreportgen.dom.TableEntry
объект.
Например, предположим, что вы определили стили с именем 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);
Для получения дополнительной информации о программном форматировании смотрите Формат Таблиц Программно.
Для отчетов HTML и PDF для форматирования записей таблицы можно использовать стили, заданные в таблице стилей шаблона HTML. При определении стиля записи таблицы используйте td
селектор элемента. Для примера:
td.TableEntryWithBorder {
border:5px solid red;
}
Чтобы применить стиль, заданный шаблоном, к записи таблицы, установите TableEntry
StyleName объекта
свойство имени стиля или укажите имя стиля как второй аргумент для TableEntry
конструктор. Для примера:
te = TableEntry('Hello World','TableEntryWithBorder');
Если вам не удобно редактировать CSS или вы хотите переопределить стиль таблицы по умолчанию только для нескольких таблиц или элементов таблицы, можно форматировать таблицы и элементы таблицы программно. Используйте один из следующих подходов:
Установите свойства формата объекта, который представляет таблицу или элемент таблицы.
Добавьте объекты формата к Style
свойство объекта, который представляет таблицу или элемент таблицы. Добавьте объекты формата путем конкатенации существующего значения Style
свойство с массивом ячеек, содержащим объекты нового формата. Для примера:
table.Style = [table.Style {Border('solid','black','3px')}];
Вот некоторые объекты формата и соответствующие свойства формата, которые применяются к mlreportgen.dom.Table
, mlreportgen.dom.FormalTable
, и mlreportgen.dom.MATLABTable
объекты.
Форматирование | Формат объекта | Формат |
---|---|---|
Ширина таблицы |
| |
Цвет фона таблицы |
| |
Задайте границу вокруг таблицы |
| |
Цвет границы |
| |
Толщина границы |
| |
Задайте левую, правую, верхнюю или нижнюю границу таблицы | n/a | |
Свернуть границы ввода таблицы и таблицы (только для отчетов HTML) |
| |
Задайте диафрагму столбцов |
| |
Цвет диафрагмы столбцов |
| |
Толщина диафрагмы столбца |
| |
Задайте диафрагму строк |
| |
Цвет диафрагмы строк |
| |
Толщина диафрагмы строк |
| |
Таблица отступов от левого поля |
| |
Пространство до или после таблицы | n/a | |
Пространство справа от таблицы | n/a | |
Выравнивание таблицы влево, вправо или по центру |
| |
Задайте направление потока ввода таблицы (слева направо или справа налево) |
| |
Измените размер столбцов таблицы, чтобы соответствовать содержимому | n/a |
Можно использовать другие объекты формата, которые применяются к объектам, содержащимся в таблице. DOM API игнорирует объекты формата, которые не применяются к конкретному объекту.
Для форматирования, которое применяется ко всей таблице, используйте свойства формата и объекты с объектом, который представляет целую таблицу. Этот пример использует объекты формата, чтобы задать границу таблицы и диафрагмы строк и столбцов. Он использует свойство format, чтобы задать цвет фона.
import mlreportgen.dom.* d = Document('test','html'); table = Table(magic(5)); table.Style = [table.Style {Border('inset','red','3px'), ... ColSep('single','black','1px'), ... RowSep('single','black','1px')}]; table.BackgroundColor = 'lightsteelblue'; append(d, table); close(d); rptview(d.OutputPath);
Для форматирования можно использовать свойства формата и объекты mlreportgen.dom.FormalTable
и mlreportgen.dom.MATLABTable
объекты. Если вы задаете формат для таблицы и одного из ее разделов, значение, заданное для раздела, переопределяет значение для таблицы в целом. Не все форматы формальных таблиц применяются к формальным разделам таблиц. Для примера, OuterLeftMargin
свойство не применяется к формальным разделам таблицы. Вы не можете отступить заголовок, тело или нижний колонтитул независимо от таблицы, которая содержит его.
Для доступа к записи таблицы для форматирования можно использовать entry
метод mlreportgen.dom.Table
, mlreportgen.dom.TableHeader
, mlreportgen.dom.TableBody
, или mlreportgen.dom.TableFooter
объект.
The entry
метод возвращает mlreportgen.dom.TableEntry
или mlreportgen.dom.TableHeaderEntry
объект. Для форматирования записи можно использовать эти TableEntry
форматировать свойства или объекты.
Форматирование | Формат объекта | Формат |
---|---|---|
Создайте границу вокруг входа |
| |
Цвет границы |
| |
Толщина границы |
| |
Создайте левую, правую, верхнюю или нижнюю границу входа | n/a | |
Выравнивание содержимого элемента по верхнему, нижнему или среднему значению |
| |
Пространство между контуром входа и содержимым входа |
| |
Пространство между содержимым входа и его верхними нижними правыми или левыми контурами | n/a | |
Причина того, что записи охватывают несколько столбцов |
|
|
Причина того, что запись охватывает несколько строк |
|
|
Можно использовать другие объекты формата, которые применяются к объектам, содержащимся в записи таблицы. DOM API игнорирует объекты формата, которые не применяются к конкретному объекту.
Этот пример создает таблицу из выхода magic
и делает максимальное число таблицы красным.
import mlreportgen.dom.*; d = Document('test','pdf'); m = magic(5); [v,i] = max(m); [v1,i1] = max(max(m)); t = Table(m); t.Border = 'single'; t.ColSep = 'single'; t.RowSep = 'single'; t.TableEntriesInnerMargin = '2pt'; t.TableEntriesHAlign = 'right'; maxnum = entry(t,i(i1),i1); maxnum.Children(1).Color = 'Red'; append(d,t); close(d); rptview(d);
Чтобы задать тот же формат или набор форматов для всех записей таблицы DOM или раздела таблицы DOM, можно использовать следующие свойства:
TableEntriesValign
TableEntriesHalign
TableEntriesInnerMargin
TableEntriesStyle
Этот пример создает таблицу из таблицы MATLAB. Пример:
Делает все записи тела таблицы синими путем добавления объекта формата к TableEntriesStyle
свойство
Центрируйте все записи тела таблицы путем установки TableEntriesHalign
свойство
import mlreportgen.dom.* d = Document('outermargin','docx'); import mlreportgen.dom.* d = Document('myMATLABTable','pdf'); Age = [38;43;38;40;49]; Height = [71;69;64;67;64]; Weight = [176;163;131;133;119]; mltable = table(Age,Weight,Height); mltableObj = MATLABTable(mltable); tbodyObj = mltableObj.Body; tbodyObj.TableEntriesStyle = {Color('blue')}; tbODYObj.TableEntriesHAlign = 'center'; append(d,mltableObj); close(d); rptview(d);
Для доступа к строке таблицы для форматирования можно использовать row
метод mlreportgen.dom.Table
, mlreportgen.dom.TableHeader
, mlreportgen.dom.TableBody
, или mlreportgen.dom.TableFooter
объект.
The row
метод возвращает mlreportgen.dom.TableRow
объект. Для форматирования строки можно использовать эти TableRow
форматировать свойства или объекты.
Форматирование | Формат объекта | Формат |
---|---|---|
Задайте точную высоту строки |
| |
Задайте минимальную высоту строки (только отчеты Word) | n/a | |
Заставить эту строку повториться как строку заголовка, когда таблица переходит между страницами | mlreportgen.dom.RepeatAsHeaderRow | n/a |
Разрешить этой строке удалять контур страницы | mlreportgen.dom.AllowBreakAcrossPages | n/a |
Можно использовать другие объекты формата, которые применяются к объектам, содержащимся в строке. DOM API игнорирует объекты формата, которые не применяются к конкретному объекту.
Этот пример создает таблицу из выхода магической функции и делает содержимое первой строки красным.
import mlreportgen.dom.*; d = Document('test','pdf'); m = magic(5); [v,i] = max(m); [v1,i1] = max(max(m)); t = Table(m); t.Border = 'single'; t.ColSep = 'single'; t.RowSep = 'single'; t.TableEntriesInnerMargin = '2pt'; t.TableEntriesHAlign = 'right'; r = row(t,1); r.Style = [r.Style {Color('red')}]; append(d,t); close(d); rptview(d);
Чтобы задать формат группы соседних столбцов таблицы, используйте mlreportgen.dom.TableColSpecGroup
объект. Чтобы переопределить форматы группы столбцов для некоторых столбцов, используйте mlreportgen.dom.TableColSpec
объект.
В этом примере TableColSpecGroup
объект задает зеленый текст. The TableColSpec
объект переопределяет форматы для первого столбца, задавая жирный, красный текст.
import mlreportgen.dom.* rpt = Document('test','pdf'); rank = 5; t = Table(magic(rank)); t.Border = 'single'; t.ColSep = 'single'; t.RowSep = 'single'; t.TableEntriesInnerMargin = '2pt'; t.TableEntriesHAlign = 'right'; %Specify the formats for all columns grps(1) = TableColSpecGroup; grps(1).Span = rank; grps(1).Style = {Color('green')}; %Specify the formats for the first column specs(1) = TableColSpec; specs(1).Span = 1; specs(1).Style = {Bold(true),Color('red')}; grps(1).ColSpecs = specs; t.ColSpecGroups = grps; append(rpt,t); close(rpt); rptview(rpt.OutputPath);
Чтобы изменить размер столбцов, чтобы соответствовать самому широкому содержимому записей таблицы в столбце, включите ResizeToFitContents
объект в Style
свойство таблицы.
mlreportgen.dom.FormalTable
| mlreportgen.dom.MATLABTable
| mlreportgen.dom.Table
| mlreportgen.dom.TableColSpec
| mlreportgen.dom.TableColSpecGroup
| mlreportgen.dom.TableEntry
| mlreportgen.dom.TableHeaderEntry
| mlreportgen.dom.TableRow
| mlreportgen.report.BaseTable