exponenta event banner

Создание таблицы из массива ячеек

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

Настройка документа и стиля

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

Импортируйте пакет DOM, чтобы не использовать длинные, полные имена классов.

import mlreportgen.dom.*

Создание и открытие документа. Чтобы создать документ PDF, измените тип вывода с docx кому pdf. Чтобы создать HTML-документ, измените docx кому html или html-file для многофайлового или однофайлового документа соответственно.

d = Document("mydoc","docx");
open(d);

Определите стили для таблицы и раздела заголовка таблицы.

tableStyles = { ColSep("solid"), ...
                RowSep("solid"), ...
                Border("solid") };
            
tableHeaderStyles = { BackgroundColor("lightgray"), ...
                      Bold(true) };

Создание таблицы

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

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

headerLabels = ["Book", "Year Published", "Characters"];

Определите данные для отображения в теле таблицы. Данные таблицы включают внешние ссылки, числа и строковые массивы, поэтому они содержатся в массиве ячеек.

book1 = ExternalLink("https://en.wikipedia.org/wiki/The_Three_Musketeers", ...
                     "The Three Musketeers");
book2 = ExternalLink("https://en.wikipedia.org/wiki/Little_Women", ...
                     "Little Women");
book3 = ExternalLink("https://en.wikipedia.org/wiki/The_Hound_of_the_Baskervilles", ...
                     "The Hound of the Baskervilles");

books = {book1; book2; book3};

yearPublished = {1844; 1868; 1902};

characters = { ["d'Artagnan", "Athos", "Porthos", "Aramis"]; ...
               ["Meg", "Jo", "Beth", "Amy"]; ...
               ["Sherlock", "Watson"] };

tableData = [books, yearPublished, characters]
tableData=3×3 cell array
    {1×1 mlreportgen.dom.ExternalLink}    {[1844]}    {1×4 string}
    {1×1 mlreportgen.dom.ExternalLink}    {[1868]}    {1×4 string}
    {1×1 mlreportgen.dom.ExternalLink}    {[1902]}    {1×2 string}

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

cellTbl = FormalTable(headerLabels,tableData);

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

cellTbl.Style = [cellTbl.Style, tableStyles];
cellTbl.Header.Style = [cellTbl.Header.Style, tableHeaderStyles];
cellTbl.TableEntriesInnerMargin = "2pt";
append(d,cellTbl);

Закройте и просмотрите документ.

close(d);
rptview(d);

См. также

|

Связанные темы