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

有关详细信息,请参阅设置表格式、创建 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);
另请参阅
mlreportgen.dom.FormalTable | mlreportgen.dom.Table | unzipTemplate | zipTemplate | mlreportgen.report.Report | rptview