Создайте и таблицы формата

Два типа таблиц

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

  • Неофициальная таблица (т.е. таблица) состоят из строк, которые содержат записи таблицы.

  • Формальная таблица содержит заголовок, тело и раздел нижнего колонтитула. Каждый раздел содержит строки, которые содержат записи таблицы.

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

Для получения дополнительной информации о неофициальных таблицах, см.:

Для получения дополнительной информации о формальных таблицах, см.:

Составьте таблицу от двумерного массива

Можно составить таблицу путем добавления двумерного числового массива или массива ячеек, содержащего встроенные в MATLAB® данные (текст и числа) и Объекты DOM (Text, Table, Image, и т.д.) к документу. Функция append преобразовывает массив в объект Table, добавляет его к документу и возвращает объект Table, который можно затем отформатировать. Можно также создать объект Table непосредственно включением двумерного массива в его конструкторе.

Этот пример показывает, как составить таблицу от числового массива и другую таблицу от массива ячеек различных типов объектов. Массив ячеек содержит магический квадрат, который представляется как внутренняя таблица. Массив ячеек также включает конструктора Object Text, который использует стиль шаблонов 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);

Используйте эти объекты формата и свойства формата, чтобы отформатировать таблицу.

Форматирование Объект форматаСвойство формата

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

Width

Width

Цвет табличного фона

BackgroundColor

BackgroundColor

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

Border

Border

Цвет границы

Border

BorderColor

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

Border

BorderWidth

Создайте оставленный, право, верхняя часть или нижняя граница таблицы

Border

нет данных

Сверните границы записи таблицы и записи таблицы (HTML)

BorderCollapse

BorderCollapse

Создайте разделитель столбцов

ColSep

ColSep

Цвет разделителя столбцов

ColSep

ColSepColor

Толщина разделителя столбцов

ColSep

ColSepWidth

Создайте разделитель строки

RowSep

RowSep

Цвет разделителя строки

RowSep

RowSepColor

Толщина разделителя строки

RowSep

RowSepWidth

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

OuterMargin

OuterLeftMargin

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

OuterMargin

нет данных

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

OuterMargin

нет данных

Выровняйте по левому краю таблицу, право или центр

HAlign

HAlign

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

FlowDirection

FlowDirection

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

ResizeToFitContents

нет данных

Записи таблицы формата

Объект Table имеет свойства, которые позволяют вам задавать тот же формат или набор форматов для всех его записей.

ФорматированиеСвойство объекта таблицы

Выровняйте записи вертикально (верхняя часть, середина, нижняя часть)

TableEntriesValign

Выровняйте записи горизонтально (оставленный, право, центр)

TableEntriesHalign

Создайте пространство (дополнение) между контуром записи и содержимым

TableEntriesInnerMargin

Примените набор объектов формата ко всем записям таблицы

TableEntriesStyle

Можно использовать объект формата 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);

Отформатируйте таблицу Используя таблицы стилей Microsoft Word

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

Чтобы задать стиль таблицы, одним словом, обрабатывают по шаблону, запускаются при помощи этих шагов.

  1. Откройте шаблон Word, используемый с отчетом.

  2. Откройте панель Styles.

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

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

  5. В диалоговом окне Create New Style from Formatting, набор Style type к Table.

Для получения дополнительной информации об использовании стилей Word с Объектами DOM смотрите, Изменяют Стили в Шаблоне Microsoft Word.

Отформатируйте HTML или таблицу PDF Используя таблицу стилей

Можно отформатировать таблицы 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 в программе отчета или в качестве второго аргумента в конструкторе Object Table или путем установки его на свойство 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);

Отформатируйте строку таблицы

Используйте эти объекты формата и свойства формата, чтобы отформатировать строку таблицы.

Форматирование высоты строкиОбъект форматаСвойство формата

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

RowHeight

Height

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

RowHeight

нет данных

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

RepeatAsHeaderRow

нет данных

Позвольте этой строке колебаться между контуром страницы

AllowBreakAcrossPages

нет данных

Столбцы таблицы формата

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

Форматирование Объект форматаСвойство формата

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

Border

Border

Цвет границы

Border

BorderColor

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

Border

BorderWidth

Создайте оставленный, право, верхняя часть или нижняя граница записи

Border

нет данных

Выровняйте верхнюю часть содержимого записи, нижнюю часть, середина

VAlign

VAlign

Пробел между контуром записи и содержимым записи

InnerMargin

InnerMargin

Пробел между содержимым записи и его верхней частью, нижней частью, правом или покинутыми контурами

InnerMargin

нет данных

Заставьте запись охватывать несколько столбцов

ColSpan

ColSpan

Заставьте запись охватывать несколько строк

RowSpan

RowSpan

Можно задать форматирование для всех записей таблицы в таблице, использовать свойство 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;
}

Чтобы применить заданный шаблоном стиль к записи таблицы, установите свойство StyleName объекта TableEntry на имя стиля или задайте имя стиля в качестве второго аргумента конструктору TableEntry. Например:

te = TableEntry('Hello World','TableEntryWithBorder');

Смотрите также

Классы

Функции

Связанные примеры

Больше о