主要内容

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

在报告中创建斑马条纹表

您可以创建斑马条纹带状表,即行背景颜色交替出现的表。您可以通过编程方式或使用 Microsoft® Word 模板或 HTML 模板来创建斑马条纹表。

注意

PDF 模板不支持斑马条纹表。

Zebra-striped table with white and blue alternating rows

有关详细信息,请参阅设置表格式创建 Microsoft Word 模板创建 HTML 和 PDF 模板

以编程方式创建斑马条纹表

此示例说明如何创建一个包含表的报告,该表跨越多页,具有交替行背景颜色,并且在表所在的每一页上都显示表头行。

导入文档对象模型 (DOM) 和报告命名空间。

import mlreportgen.dom.*
import mlreportgen.report.*

将示例数据集 outages.csv 作为表导入。

outages = readtable("outages.csv","TextType","string");

创建报告容器。

rpt = Report("zebraRows","pdf");

打开报告并创建一个章节。

open(rpt);
chapter = Chapter;

创建一个正式表和一个表行。

table = FormalTable;
header = TableRow;

table 中添加包含变量名的条目,这些变量名来自 outages 表。

for colNumber = 1:width(outages)
append(header,TableEntry(outages.Properties.VariableNames{colNumber}));
end

将表行的背景颜色设置为三文鱼的颜色,然后将该行作为表头行追加到正式表中。

header.Style = {BackgroundColor("salmon")};
appendHeaderRow(table,header);

对于 outages 表的前 60 行,创建表行并设置其背景色,为各列添加表项,然后将该表行追加到正式表中。

colors = ["white" "cadetblue"];
for rowNumber = 1:60
    row = TableRow;
    row.Style = {BackgroundColor(colors(~mod(rowNumber, 2)+1))};
    for colNumber = 1:width(outages)
        entry = Text(outages{rowNumber,colNumber});
        append(row,TableEntry(entry));
    end
    append(table, row);
end

定义表样式。为行和列添加边框和分隔符。将文本设置为使用 16pt 粗体和斜体字体。

table.Style = {Border("dashed"),ResizeToFitContents(true), ...
    RowSep("solid"),ColSep("solid"),FontSize("16pt"),Bold,Italic};

创建一个 BaseTable 报告器。

baseTable = BaseTable(table);

aseTable 报告器添加到章节中,然后将章节添加到报告中。

append(chapter,baseTable);
append(rpt,chapter);

关闭并查看报告。

close(rpt);
rptview(rpt);

使用 Microsoft® Word 模板创建斑马条纹表

您可以通过向 Microsoft Word 模板添加表样式来创建斑马条纹表。然后,您可以使用该模板生成包含斑马条纹表的报告。使用模板可以将您的应用程序组织成独立的组件。

1.创建一个名为 myrpt.dotx 的 Word 模板。

mlreportgen.report.Report.createTemplate("myrpt","docx");

2.右键点击模板文件,然后在上下文菜单中点击 Open Outside MATLAB。如果双击文件名,它将作为使用该模板的 DOC 文件打开。

3.打开样式窗格。

4.在样式窗格中,点击“新建样式”按钮。

5.要定义可用于创建斑马条纹行的表样式,请设置以下字段:

  • 名称 - ZebraStripeTable

  • 样式类型 - Table

5.将应用格式至设置为 Even banded rows。在颜色字段中,从下拉列表中选择奇数带状行的颜色。

6.将应用格式至设置为 Whole table

  • 对齐 - Align Center

  • 边框 - All Borders

6.点击确定保存新样式。

7.保存模板文件。

8.为避免使用完全限定的类名,请导入报告和 DOM 命名空间。

import mlreportgen.report.*
import mlreportgen.dom.*

9.创建报告容器并指定 myrpt 模板。

rpt = mlreportgen.report.Report("myreport","docx","myrpt.dotx");

10.创建一个幻方表并设置表样式。

maglen = 8;
mag = magic(maglen);
table = Table(mag);
table.StyleName = "ZebraStripeTable";

11.指定行高和表宽度。

table.Style={RowHeight("0.3in")};
table.Width= "3in";

12.将表添加到报告中。然后,关闭并查看报告。

append(rpt,table);
close(rpt);
rptview(rpt);

使用 HTML 模板创建斑马条纹表

您可以通过向 HTML 模板添加表样式来创建斑马条纹表。

1.创建一个 HTML 模板。

mlreportgen.report.Report.createTemplate("myrpt","html");

2.将模板解压缩到名为 myrpt 的文件夹中。该文件夹包含样式表和图像模板文件。

unzipTemplate("myrpt.htmtx");

3.在 myrpt 文件夹的 stylesheets 子文件夹中,打开 root.css 文件。

4.要创建一个为 HTML 表元素定义样式名 ZebraStripeTable 的 CSS 规则,请在 root.css 文件末尾添加以下行。背景颜色 #B0C4DE 和 #FFFFFF 分别是浅蓝色和白色。

/* Settings for whole table */

table.ZebraStripeTable {

text-align: center;

border: 1px solid black;

border-collapse: collapse;

width: 5in;

height: 4in;

}

/* Settings for table body */

table.ZebraStripeTable td {

padding: 0pt 0pt 0pt 0pt;

vertical-align: middle;

text-align: center;

border: 1px solid black;

border-collapse: collapse;

}

/* Zebra rows and colors */

tr:nth-child(even) {

background-color: #B0C4DE

}

tr:nth-child(odd) {

background-color: #FFFFFF

}

5.保存 root.css 文件。

6.将模板文件压缩到 mrpt.htmtx 模板中。

zipTemplate("myrpt");

7.导入报告和 DOM 命名空间,以避免使用完全限定的类名称。

import mlreportgen.report.*
import mlreportgen.dom.*

8.使用模板创建报告。

rpt = mlreportgen.report.Report("myreport","html","myrpt.htmtx");

9.创建一个幻方表并将 StyleName 属性设置为表样式。

maglen = 8;
mag = magic(maglen);
tb = Table(mag);
tb.StyleName = "ZebraStripeTable";

10.将表添加到报告中。然后,关闭并查看报告。

append(rpt,tb);
close(rpt);
rptview(rpt);

另请参阅

| | | | |

主题