Формат таблиц

Можно использовать 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:

  1. Создайте шаблон Microsoft Word. Дополнительные сведения о создании шаблона Microsoft Word см. в разделе Создание шаблона Microsoft Word.

  2. Откройте файл шаблона Word одним из следующих методов:

    • В MATLAB, в Current Folder pane, щелкните правой кнопкой мыши файл шаблона и нажмите Open Outside MATLAB.

    • За пределами MATLAB щелкните правой кнопкой мыши файл и выберите Open.

      Примечание

      Не кликните файл шаблона Word дважды, чтобы открыть его. Двойной щелчок по файлу открывает файл документа Word, в котором используется шаблон.

  3. В Word на вкладке Home, в группе Styles, щелкните значок Styles.

  4. Нажмите кнопку Manage Styles.

  5. Нажмите New Style.

  6. В диалоговом окне «Создание нового стиля из форматирования» выполните следующие действия.

    • Задайте Name.

    • Установите Style type значение Table.

    • В Style based on выберите базовый стиль для нового стиля.

    • В Formatting разделе укажите форматирование и части таблицы, к которым применяется форматирование.

  7. Выберите New documents based on this template и нажмите OK.

  8. В диалоговом окне Manage Styles выберите New documents based on this template и нажмите OK.

  9. Сохраните шаблон.

Пример форматирования с использованием шаблона Word см. в разделе Создание Zebra-полосатой таблицы.

Создайте HTML или PDF Таблицы стиль

Форматировать 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 объекты.

ФорматированиеФормат объектаФормат

Ширина таблицы

mlreportgen.dom.Width

Width

Цвет фона таблицы

mlreportgen.dom.BackgroundColor

BackgroundColor

Задайте границу вокруг таблицы

mlreportgen.dom.Border

Border

Цвет границы

mlreportgen.dom.Border

BorderColor

Толщина границы

mlreportgen.dom.Border

BorderWidth

Задайте левую, правую, верхнюю или нижнюю границу таблицы

mlreportgen.dom.Border

n/a

Свернуть границы ввода таблицы и таблицы (только для отчетов HTML)

mlreportgen.dom.BorderCollapse

BorderCollapse

Задайте диафрагму столбцов

mlreportgen.dom.ColSep

ColSep

Цвет диафрагмы столбцов

mlreportgen.dom.ColSep

ColSepColor

Толщина диафрагмы столбца

mlreportgen.dom.ColSep

ColSepWidth

Задайте диафрагму строк

mlreportgen.dom.RowSep

RowSep

Цвет диафрагмы строк

mlreportgen.dom.RowSep

RowSepColor

Толщина диафрагмы строк

mlreportgen.dom.RowSep

RowSepWidth

Таблица отступов от левого поля

mlreportgen.dom.OuterMargin

OuterLeftMargin

Пространство до или после таблицы

mlreportgen.dom.OuterMargin

n/a

Пространство справа от таблицы

mlreportgen.dom.OuterMargin

n/a

Выравнивание таблицы влево, вправо или по центру

mlreportgen.dom.HAlign

HAlign

Задайте направление потока ввода таблицы (слева направо или справа налево)

mlreportgen.dom.FlowDirection

FlowDirection

Измените размер столбцов таблицы, чтобы соответствовать содержимому

mlreportgen.dom.ResizeToFitContents

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);

Форматирование формальной таблицы или таблицы MATLAB программно

Для форматирования можно использовать свойства формата и объекты 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 форматировать свойства или объекты.

ФорматированиеФормат объектаФормат

Создайте границу вокруг входа

mlreportgen.dom.Border

Border

Цвет границы

mlreportgen.dom.Border

BorderColor

Толщина границы

mlreportgen.dom.Border

BorderWidth

Создайте левую, правую, верхнюю или нижнюю границу входа

mlreportgen.dom.Border

n/a

Выравнивание содержимого элемента по верхнему, нижнему или среднему значению

mlreportgen.dom.VAlign

VAlign

Пространство между контуром входа и содержимым входа

mlreportgen.dom.InnerMargin

InnerMargin

Пространство между содержимым входа и его верхними нижними правыми или левыми контурами

mlreportgen.dom.InnerMargin

n/a

Причина того, что записи охватывают несколько столбцов

n/a

ColSpan

Причина того, что запись охватывает несколько строк

n/a

RowSpan

Можно использовать другие объекты формата, которые применяются к объектам, содержащимся в записи таблицы. DOM API игнорирует объекты формата, которые не применяются к конкретному объекту.

Этот пример создает таблицу из выхода magic и делает максимальное число таблицы красным.

5-by-5 table of numbers. The entry in row five, column three is 25 and red.

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 свойство

Table with three columns: Age, Weight, and Height. Each column has five rows. The numbers are blue.

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 форматировать свойства или объекты.

ФорматированиеФормат объектаФормат

Задайте точную высоту строки

mlreportgen.dom.RowHeight

Height

Задайте минимальную высоту строки (только отчеты Word)

mlreportgen.dom.RowHeight

n/a

Заставить эту строку повториться как строку заголовка, когда таблица переходит между страницами

mlreportgen.dom.RepeatAsHeaderRow

n/a

Разрешить этой строке удалять контур страницы

mlreportgen.dom.AllowBreakAcrossPages

n/a

Можно использовать другие объекты формата, которые применяются к объектам, содержащимся в строке. DOM API игнорирует объекты формата, которые не применяются к конкретному объекту.

Этот пример создает таблицу из выхода магической функции и делает содержимое первой строки красным.

A 5-by-5 table of numbers. The first row is red and the other rows are black.

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 объект переопределяет форматы для первого столбца, задавая жирный, красный текст.

A 5-by-5 table of numbers. The first column is red. The other columns are green.

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 свойство таблицы.

См. также

| | | | | | | |

Похожие темы

Внешние веб-сайты