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

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

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

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

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

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

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 возразите в своей программе отчета любому в качестве второго аргумента в 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);

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

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

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

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

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

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

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

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

Классы

Функции

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

Больше о