Создайте и списки форматов

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

Списки представлены как mlreportgen.dom.UnorderedList или mlreportgen.dom.OrderedList объекты. Элементы списка представлены как mlreportgen.dom.ListItem объекты.

Можно создать список из массива MATLAB®, который задает элементы списка, или создайте список один элемент за один раз. Создание списка от массива является самым простым подходом. Создание списка, один элемент за один раз полезен, когда элементы содержат несколько элементов, таких как абзац и таблица.

Списки форматов и элементы списка при помощи заданных шаблоном стилей или программно при помощи объектов формата.

Создайте список из массива MATLAB

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

Создайте неупорядоченный список из массива

Чтобы создать неупорядоченный список из массива, добавьте массив непосредственно к части документа или документа. append метод:

  • Создает mlreportgen.dom.UnorderedList объект.

  • Создает mlreportgen.dom.ListItem объект для каждого элемента массива.

  • Добавляет ListItem объекты к UnorderedList возразите и UnorderedList возразите против части документа или документа.

Например, этот код создает неупорядоченный список из массива строк:

import mlreportgen.dom.*
d = Document("fruit","html");

ul = append(d,["apples","oranges","bananas"]);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

Bulleted list that includes items apples, oranges, and bananas

Примечание

Чтобы создать список путем добавления массива к части документа или документа, массив должен быть 1 n. Добавление n-by-1 массив к части документа или документа составляет таблицу, не список.

В качестве альтернативы создайте неупорядоченный список путем обеспечения массива как входа к mlreportegen.dom.UnorderedList конструктор. Например:

import mlreportgen.dom.*
d = Document("fruit","html");

ul = UnorderedList(["apples","oranges","bananas"]);
ul = append(d,ul);

close(d);
rptview(d);

Конструктор создает mlreportgen.dom.ListItem объект для каждого элемента массива и добавляет ListItem объекты к UnorderedList объект.

Создайте упорядоченный список из массива

Чтобы создать упорядоченный список из массива, предоставьте массив, как введено mlreportegen.dom.OrderedList конструктор. Конструктор создает mlreportgen.dom.ListItem объект для каждого элемента массива и добавляет ListItem объекты к OrderedList объект. Например, этот код создает упорядоченный список из массива строк.

import mlreportgen.dom.*
d = Document("weekdays","html");

ol = OrderedList(["Monday","Tuesday","Wednesday","Thursday","Friday"]);
append(d,ol);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

List of weekdays in order, Monday through Friday

Создайте список из массива ячеек

Задайте элементы списка в массиве ячеек, когда элементы будут иметь различные типы. В массиве ячеек можно включать векторы символов, строки, числа и некоторые Объекты DOM, такие как mlreportgen.dom.Text объект. Для списка Объектов DOM, которые можно включать, смотрите mlreportgen.dom.ListItem.

Например, этот код создает упорядоченный список из массива ячеек, который содержит векторы символов и mlreportgen.dom.ExternalLink объект.

import mlreportgen.dom.*
d = Document('myreport','html');

ol = UnorderedList({...
    'apples',...
    'oranges',...
    ExternalLink('https://en.wikipedia.org/wiki/Mango',...
    'mango')});
append(d,ol);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

 Bulleted list with the items apples, oranges, and mango. Mango is a
                        hyperlink.

Создайте список один элемент за один раз

Вместо того, чтобы задать целый список как массив, можно задать каждый элемент списка как mlreportgen.dom.ListItem возразите и добавьте ListItem объекты к mlreportgen.UnorderedList или mlreportgen.OrderedList объект. Этот подход полезен, когда элементы списка содержат несколько абзацев, соединение абзацев и таблиц или других комбинаций элементов документа.

Например, этот код создает список, в котором элементы списка состоят из абзаца и таблицы.

import mlreportgen.dom.*
d = Document('magicsquares','html');

ol = UnorderedList();
item1 = ListItem(Paragraph('magic(2)'));
append(item1,Table(magic(2)));
append(ol,item1);
item2 = ListItem(Paragraph('magic(3)'));
append(item2,Table(magic(3)));
append(ol,item2);
append(d,ol);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

A bulleted list with two items. Each list item is a call to the magic function
                    followed by the output.

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

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

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

  • Создайте многоуровневый список из массивов ячеек, которые моделируют иерархию списка. С этим подходом API DOM представляет подсписок как дочерний элемент списка, который содержит его.

  • Создайте многоуровневый список один список во время с помощью mlreportgen.dom.UnorderedList, mlreportgen.dom.OrderedList, и mlreportgen.dom.ListItem объекты. Добавьте подсписок к списку или перечислите элемент. Если вы добавляете подсписок к списку, API DOM представляет подсписок как дочерний элемент списка. Если вы добавляете подсписок к элементу списка, API DOM представляет подсписок как дочерний элемент элемента списка.

Создайте многоуровневый список из Массивов ячеек

Чтобы создать многоуровневый список из массивов ячеек, используйте один из этих подходов:

  • Если подсписок является неупорядоченным списком, можно представлять его как 1 n массивом ячеек, который является элементом 1 n массивом ячеек, который представляет список, который является, каждый выравнивает. Например, этот код представляет подсписок как массив ячеек, который является третьим элементом массива ячеек, который представляет список верхнего уровня.

    import mlreportgen.dom.*;
    d = Document('nestedListReport','html');
    
    topList = OrderedList({...
        'Start MATLAB',...
        'Create a rank 3 or 4 magic square',...
            {'magic(3)',...  % sublist is third element
            'magic(4)'},...
        'Close MATLAB'});
    append(d,topList);
    
    close(d);
    rptview(d);

    Вот список в сгенерированном отчете:

    A nested list with three items. A bulleted sublist is
                                        nested under the second item of the top-level list.

  • Если подсписок является упорядоченным списком, создайте mlreportgen.dom.OrderedList объект от 1 n массивом ячеек, который представляет подсписок. Включайте OrderedList возразите как элемент массива ячеек, который представляет список, который является, каждый выравнивает. Например, этот код создает OrderedList объект от массива ячеек, который представляет подсписок и включает объект как третий элемент массива ячеек, который используется, чтобы создать список верхнего уровня.

    import mlreportgen.dom.*;
    d = Document('orderedListReport','html');
    
    topList = OrderedList({'Start MATLAB', ...
        'Create a rank 3 or 4 magic square',...
        OrderedList({...  % sublist is third element
            'magic(3)',...
            'magic(4)'}),...
        'Close MATLAB'});
    
    append(d,topList);
    
    close(d);
    rptview(d);

    Вот список в сгенерированном отчете:

    A numbered list with three items. A numbered sublist is nested
                                    under the second item of the top-level list.

В этих двух предыдущих примерах API DOM представляет подсписок как третий дочерний элемент списка верхнего уровня. Чтобы получить доступ к подсписку, используйте Children свойство списка верхнего уровня.

topList.Children(3)

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

Когда элементы подсписка содержат несколько абзацев, соединение абзацев и таблиц или других комбинаций элементов документа, создают mlreportgen.dom.ListItem объекты и добавляют их к mlreportgen.dom.UnorderedList или mlreportgen.dom.OrderedList объект. Затем добавьте подсписок к списку или к элементу списка.

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

import mlreportgen.dom.*;
d = Document('orderedListReport','html');

subList = UnorderedList;
subListItem1 = ListItem('>> magic(3)');
table = append(subListItem1,Table(magic(3)));
table.Width = '1in';
append(subList,subListItem1);
subListItem2 = ListItem('>> magic(4)');
table = append(subListItem2,Table(magic(4)));
table.Width = '1in';
append(subList,subListItem2);

topList = OrderedList();
append(topList,ListItem('Start MATLAB'));
append(topList,ListItem('Create a rank 3 or 4 magic square'));
append(topList,subList); % sublist is item 3 of topList
append(topList,ListItem('Close MATLAB'));
    
append(d,topList);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

A numbered list with three items. The sublist items contain text for
                            the magic function call and a table for the output.

API DOM представляет подсписок как третий дочерний элемент списка верхнего уровня. Чтобы получить доступ к подсписку, используйте Children свойство списка верхнего уровня.

topList.Children(3)

Вместо того, чтобы добавить подсписок к списку, можно добавить подсписок к элементу списка. Следующий пример добавляет подсписок к второму элементу списка списка верхнего уровня. Сгенерированный список выглядит одинаково как в предыдущем примере.

import mlreportgen.dom.*;
d = Document('orderedListReport','html');

topList = OrderedList({ ...
    'Start MATLAB', ...
    'Create a rank 3 or 4 magic square:', ...
    'Close MATLAB'});

subList = UnorderedList;
subListItem1 = ListItem('>> magic(3)');
table = append(subListItem1,Table(magic(3)));
table.Width = '1in';
append(subList,subListItem1);
subListItem2 = ListItem('>> magic(4)');
table = append(subListItem2,Table(magic(4)));
table.Width = '1in';
append(subList,subListItem2);

% Append the sublist to the second list item
topListItem2 = topList.Children(2);
append(topListItem2, subList);

append(d, topList);

close(d);
rptview(d);

API DOM представляет подсписок как второй дочерний элемент второго элемента списка верхнего уровня. Чтобы получить доступ к подсписку, используйте этот код:

topList.Children(2).Children(2)

Отформатируйте список Используя заданные шаблоном стили

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

Чтобы использовать заданный шаблоном стиль списка, чтобы отформатировать список, установите StyleName свойство списка к имени стиля. Например, этот код указывает, что именем стиля списка является MyListStyle.

import mlreportgen.dom.*;
d = Document('myListReport','html');

list = append(d,{'first item',...
    OrderedList({'step 1','step 2'}),'second item'});
list.StyleName = 'MyListStyle';

close(d);
rptview(d);

Для Microsoft® документы Word стиль списка, который вы задаете, должен быть задан в шаблоне, который присвоен документу.

Примечание

Стиль списка определяет, как элементы списка представляются независимо от типа списка. Если вы не задаете стиль списка, ДОМ АПИ использует стиль списка по умолчанию, который представляет список согласно типу. Например, стиль списка по умолчанию для неупорядоченных списков использует маркеры, чтобы представить элементы списка. Если вы указываете, что список разрабатывает для mlreportegen.dom.UnorderedList возразите, что элементы чисел, элементы пронумерованы, даже при том, что тип объекта не упорядочен.

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

Для получения информации о создании шаблона Word смотрите, Создают Шаблон Microsoft Word.

Чтобы задать стиль списка, одним словом, обработайте по шаблону:

  1. Откройте файл шаблона Word при помощи одного из этих методов:

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

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

      Примечание

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

  2. В Word, на вкладке Home, в группе Paragraph, кликают по значку Multilevel List и затем нажимают Define New List Style.

  3. Установите Name на свое имя стиля.

  4. Задайте форматирование, такое как стиль маркера и цвет для каждого уровня списка.

  5. Выберите New documents based on this template.

  6. Нажмите OK, чтобы сохранить шаблон.

Для примера, который задает стиль Списка слов, см. Пользовательский Стилизованный Список слов.

Создайте HTML или стиль списка PDF

Чтобы задать стиль списка в каскадной таблице стилей (CSS) для шаблона HTML или PDF, используйте ul элемент для неупорядоченных стилей списка и ol элемент для упорядоченных стилей списка. Можно использовать дочерний селектор (>) задавать многоуровневые стили списка. Смотрите Изменяют Стили в Шаблонах HTML и Изменяют Стили в Шаблонах PDF.

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

ul.MyUnorderedList {
	list-style-type:disc;
}

ul.MyUnorderedList > ul {
	list-style-type:circle;
}

ul.MyUnorderedList > ol {
	list-style-type:decimal;
}

Для получения информации о редактировании CSS см. документацию, такую как руководство по CSS W3Schools.com.

Отформатируйте список программно

Списки форматов программно путем добавления объектов формата, таких как mlreportgen.dom.Color объект, к Style свойство mlreportgen.dom.UnorderedList, mlreportgen.dom.OrderedList, или mlreportgen.dom.ListItem объект. Форматирование этого вы задаете в Style свойство заменяет заданный шаблоном стиль.

Для списков в PDF и отчетах HTML, можно задать тип маркера или нумерующий тип при помощи mlreportgen.dom.ListStyleType объект формата.

Например, этот код создает зеленый, упорядоченный список со строчными алфавитными маркерами. Третий элемент списка является синим и курсивным.

import mlreportgen.dom.*
d = Document('myreport','html');

ol = OrderedList(["one", "two", "three"]);
ol.Style = {Color('Green'),ListStyleType('lower-alpha')};
ol.Children(3).Style = {Color('blue'),Italic(true)};
append(d,ol);

close(d);
rptview(d);

Вот список в сгенерированном отчете:

A list with lowercase letters for bullets showing different colors and styles
                    for list items

Можно также отформатировать Объекты DOM, которые вы используете, чтобы создать элементы списка при помощи свойств формата или объектов формата, сопоставленных с объектом. Например, этот форматы кода mlreportgen.dom.Text объекты, прежде чем они будут использоваться, чтобы создать список.

import mlreportgen.dom.*
d = Document('myreport','html');

li1 = Text('red');
li1.Color = 'Red';
li2 = Text('blue');
li2.Color = 'Blue';

append(d,{li1, li2});

close(d);
rptview(d);

Вот список в сгенерированном отчете:

Bulleted list where item one is red and item two is blue.

Отформатируйте элемент списка в многоуровневом списке

В зависимости от того, как вы создаете многоуровневый список, подсписок может быть дочерним элементом родительского списка или дочерним элементом предыдущего элемента списка в родительском списке. Смотрите Создают Многоуровневый Список.

Если подсписок является дочерним элементом элемента списка родительского списка, подсписок наследовал форматирование от элемента списка. Например, этот код делает подсписок дочерним элементом второго элемента списка в родительском списке.

import mlreportgen.dom.*;
d = Document('nestedListReport','html');

parentlist = OrderedList();
li1 = ListItem('List Item 1');
li2 = ListItem('List Item 2');
li2.Style = [li2.Style {Color('red')}];

sublist = UnorderedList({'Sublist Item 1' 'Sublist Item 2'});
append(li2,sublist);

append(parentlist,li1);
append(parentlist,li2);
append(d,parentlist);

close(d);
rptview(d);

Подсписок наследовал красный цвет от элемента списка, который содержит его.

Ordered list where first item is black and the second item and the sublist that
                    it contains are red

Если вы не хотите, чтобы подсписок наследовал форматирование от предыдущего элемента списка, отформатируйте абзац или текст в предыдущем элементе списка вместо того, чтобы форматировать элемент списка. Например:

import mlreportgen.dom.*;
d = Document('nestedListReport','html');

parentlist = OrderedList();
li1 = ListItem('List Item 1');
txt = Text('List Item 2');
txt.Color = 'red';
li2 = ListItem(txt);

sublist = UnorderedList({'Sublist Item 1' 'Sublist Item 2'});

append(parentlist,li1);
append(parentlist,li2);
append(parentlist,sublist);

append(d,parentlist);

close(d);
rptview(d);
В качестве альтернативы можно создать подсписок как дочерний элемент родительского списка, а не дочерний элемент предыдущего элемента списка в родительском списке. Если подсписок является дочерним элементом родительского списка, подсписок не наследовал форматирование предыдущего элемента списка в родительском списке. Например, этот код делает подсписок дочерним элементом родительского списка:
import mlreportgen.dom.*;
d = Document('nestedListReport','html');

parentlist = OrderedList();
li1 = ListItem('List Item 1');
li2 = ListItem('List Item 2');
li2.Style = [li2.Style {Color('red')}];

sublist = UnorderedList({'Sublist Item 1' 'Sublist Item 2'});

append(parentlist,li1);
append(parentlist,li2);
append(parentlist,sublist);

append(d,parentlist);

close(d);
rptview(d);

Второй элемент списка родительского списка является красным, но подсписок является черным.

Ordered list where the first list item is black, the second list item is red,
                    and the sublist is black

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

| | |

Похожие темы