主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

从元胞数组创建表

此示例显示如何使用元胞数组创建显示几种不同数据类型的数据的表。

文档和样式设置

以下代码设置了用于格式化示例表的文档和表样式。

导入 DOM 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.dom.*

创建并打开一个文档。要创建 PDF 文档,请将输出类型从 docx 更改为 pdf。要创建 HTML 文档,请分别将 docx 更改为 htmlhtml-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]}    {["d'Artagnan"    "Athos"    "Porthos"    "Aramis"]}
    {1×1 mlreportgen.dom.ExternalLink}    {[1868]}    {["Meg"    "Jo"    "Beth"    "Amy"                ]}
    {1×1 mlreportgen.dom.ExternalLink}    {[1902]}    {["Sherlock"    "Watson"                          ]}

创建一个包含标题标记和表数据的表。表数据中的单行字符串数组在构造表时被转换为 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);

另请参阅

|

主题