文件

创建和格式化表

两种表格

您可以使用DOM API创建两种类型的结构表。

  • 非正式表(即表)由包含表项的行组成。

  • 正式表包含页眉、正文和页脚部分。每个部分包含包含表项的行。

非正式表对您的大多数报告需求有用。使用表格或页脚包含多行的表格的正式表。

非正式表的详细信息请参见:

正式表格请参见:

从二维数组创建一个表

您可以通过附加包含内置MATLAB的二维数字数组或单元格数组来创建表®数据(字符串和数字)和DOM对象文本桌子图像,等等)。这附加函数将数组转换为桌子对象,将其附加到文档中,并返回桌子对象,您可以格式化。你也可以创建一个桌子直接通过在其构造函数中包含二维数组来直接对象。

这个示例演示了如何从数字数组创建一个表,以及从各种对象类型的单元格数组创建另一个表。单元格数组包含一个魔术方块,它被呈现为一个内部表。单元格数组还包括文本使用该构造函数AlertLevel.模板样式。

进口mlreportgen.dom。*;医生=文档(“测试”);table1 =附加(doc,magic(5));table1.border =.“单一”;表1。ColSep=“单一”;表1。RowSep=“单一”;ca = {'文本输入'段('段条目');...文本(“危险!”'Alertlevel'),魔法(4)};表二=表(ca);追加(医生,表二);关闭(doc);rptview (doc.OutputPath);

使用Table项函数创建表

你可以使用条目用A功能桌子对象,以向表项添加内容或格式化项。当需要单独格式化表项时,这种方法很有用。例如:

进口mlreportgen.dom。*;医生=文档(“测试”);一个=魔法(5);[v,我]= max ();(v1, i1) = max (max ());表=表(一);文本= table.entry(我(i1), i1)定格(1);文本。颜色='红色的';追加(医生,表);关闭(doc);rptview (doc.OutputPath);

从头开始创建一个表

您可以通过创建从头开始创建表TableEntry对象,将它们追加到TableRow对象,并附加TableRow对象桌子对象。当您需要创建跨多个具有不同条目数量的列或行的表条目时,此方法非常有用。这个例子展示了如何创建一个四列两行的表。在第一个表行中,第二个条目横跨第二列和第三列。

进口mlreportgen.dom。*;医生=文档(“测试”);表=表(4);table.border =.“单一”;table.colsep =.“单一”;表格RowSep=“单一”;行= TableRow;追加(行,TableEntry ('入口11'));te = TableEntry ('条目12-13');te.colspan = 2;te.border =.“单一”;追加(行,te);追加(行,TableEntry ('入门14'));追加(表、行);行= TableRow;为了c = 1:4追加(row, TableEntry(sprintf())输入2%我, C)));结尾追加(表、行);追加(医生,表);关闭(doc);rptview (doc.OutputPath);

格式表

可以使用DOM格式对象或格式属性以编程方式格式化表。你也可以使用模板样式。有关这些格式化技术和格式继承的信息,请参阅报告格式化方法

以编程方式格式化表

您可以使用格式对象格式化表或使用桌子格式化属性以指定常用的表格格式。此示例使用:

  • 边境ColSep,RowSep格式化对象以指定红色的表边框和绿色的列和行分隔符

  • 宽度格式化属性指定表宽度

进口mlreportgen.dom。*;d =文档(“测试”“html”);表=表(魔法(5));表格风格= {Border(“插图”'红色的''3px'),...ColSep (“单一”“绿色”'1px'),...RowSep (“单一”“绿色”'1px')};表格宽度=“50%”;附加(d,表);关闭);rptview(d.outputpath);

使用这些格式对象和格式属性来格式化表。

格式化 格式对象 格式化属性

表格的宽度

宽度

宽度

表格背景颜色

背景颜色

背景颜色

创建表的边框

边境

边境

颜色的边框

边境

边框颜色

厚度的边境

边境

BorderWidth

创建左,右,顶部或底表边框

边境

N/A

折叠表格和表格条目边界(HTML)

BorderCollapse

BorderCollapse

创建列分隔符

ColSep

ColSep

列分隔符颜色

ColSep

ColSepColor

柱分离器厚度

ColSep

COLSEPWIDTH.

创建行分隔符

RowSep

RowSep

行分隔符颜色

RowSep

RowSepColor

行分隔符厚度

RowSep

RowSepWidth

从左边缩进表格

ulermargin.

OuterLeftMargin

桌子前后留出空间

ulermargin.

N/A

桌子右边的空间

ulermargin.

N/A

将表格左、右或中间对齐

HAlign

HAlign

指定表项流程(左右或右到左)

流动的方向

流动的方向

调整表列的大小以适应内容

ResizeToFitContents

N/A

格式表条目

一种桌子对象具有允许您为所有条目指定相同格式或格式的属性。

格式化 表对象属性

垂直对齐(上、中、下)

TableEntriesValign

水平对齐条目(左,右,中心)

TableEntriesHalign

在条目边界和内容之间创建空间(填充)

TableEntriesInnerMargin

将一组格式对象应用于所有表项

tableentriesstyle.

你可以用mlreportgen.dom.textorientation.格式化对象以在表条目垂直或水平中制作文本。

将表格和标题保持在同一页上

使用KeepLinesTogetherKeepWithNext段落格式保持表格标题和表格在同一页上。本例使用表条目索引创建了表标题、表内容,并使表标题行加粗。为了使表保持在同一页上,代码指定KeepLinesTogetherKeepWithNext对于除最后一行以外的所有行。最后一行只有KeepLinesTogether设置而不是KeepWithNext。这可以防止表被迫留在随后的段落。

进口mlreportgen.dom。*rpt =文档(“测试”“多克斯”);p =段('表格1');p.Style ={粗体、KeepLinesTogether、KeepWithNext};追加(rpt, p);ca ={段('col 1')、段落('col 2');...段落(“数据11”)、段落(“数据12”);...段落(“数据21”)、段落(“数据22”)};CA {1,1} .Children(1).bold = true;CA {1,2} .Children(1).bold = true;为了r = 1:2为了C = 1:2 ca{r, C}。风格= {KeepLinesTogether,KeepWithNext};结尾结尾为了C = 1:2 CA {3,C} .style = {keeplinestogether};结尾附录(RPT,CA);关闭(rpt);rptview(rpt.outputpath);

使用Microsoft Word样式表格式化表格

可以在模板中使用现有的Word样式或修改或添加的模板样式格式化表。

要在Word模板中定义表样式,首先使用以下步骤。

  1. 打开与报表一起使用的Word模板。

  2. 打开风格窗格。

  3. 点击管理风格按钮

  4. 点击新风格

  5. 在“从格式创建新样式”对话框中,设置风格类型桌子

有关在DOM对象中使用Word样式的更多信息,请参见修改Microsoft Word模板中的样式

使用样式表格式化HTML或PDF表

可以使用模板中定义的CSS样式格式化HTML和PDF表。

要在HTML或PDF模板中定义表样式,请在A上使用选择器表格风格。例如:

表.Mytable {边界底颜色:RGB(128,128,128);边界底宽:薄;边境崩溃:崩溃;}

    提示使用CSS子选择器(>)指定表的子项的格式。例如,此CSS代码指定表条目的格式(道明元素),其样式为MyTable

    表格font-family: Arial, Helvetica, sans-serif; font-family:宋体;字体大小:11分;text-align:中心;}

将样式应用于桌子

一旦您在模板中定义了表样式,就可以将其应用于一个桌子报表计划中的对象是第二个参数桌子对象构造函数或将其设置为风格名称财产的财产桌子对象。例如,假设您定义了命名为BodyPara百彩票,Ruledtable.在你报告的模板里。示例中指定样式名称构造函数,风格名称A的财产对象,在一个桌子构造函数。

进口mlreportgen.dom。*;排名= 5;rpt =文档('我的报告'“html”“MyTemplate”);p =段(“这是一个神奇的正方形或第5级:”“BodyPara”);附录(RPT,P);p =段(Sprintf(“% d MagicSquare排名”,排名));p.StyleName ='pabletitle';附录(RPT,表格(魔术(级别),'Ruledtable'));关闭(rpt);rptview(rpt.outputpath);

您可以使用程序化格式来覆盖基于模板的表样式中定义的样式。例如,假设您定义了一个名为的表格样式UnruledTable在模板中创建没有任何边界或列或行分隔符的表。然后,您可以覆盖报表程序中的样式以在表周围绘制帧。

进口mlreportgen.dom。*;rpt =文档('我的报告'“html”“MyTemplate”);表=表(魔法(5),'unrumenttable');table.border =.“单一”;追加(rpt、表);关闭(rpt);rptview(rpt.outputpath);

创建正式表

要创建正式表,请使用与非正式表相同的基本方法,除了使用mlreportgen.domlFormalTable构造函数构建正式表。构造函数可选地接受二维数字数组或MATLAB数据的小区数组,用于主体,标题和页脚部分。

如果您完全或部分地从头开始构建正式表,则可以使用汇编对象的功能appendHeaderRowappendBodyRow将行追加到表格页眉和页脚部分。这拼写.Append.函数将行附加到身体部分。或者,您可以使用使用的部分身体,或页脚的财产汇编对象。

进口mlreportgen.dom。*d =文档(“测试”);t =汇编({“一个”“b”“c”' d '});r = tablerow();附加(r,表选术('第1栏'));附加(r,表选术('第2栏'));附录(t.header,r);附录(d,t);关闭);rptview(d.outputpath);

格式化正式桌子

您可以使用DOM格式对象或格式属性以编程方式格式化正式表。你也可以使用模板样式。有关这些格式化技术和格式继承的信息,请参阅报告格式化方法

以编程方式格式化正式表

可以通过编程方式格式化正式表,方法与格式化非正式表相同。适用于非正式表的格式对象和属性也适用于正式表。此外,还可以通过编程方式格式化非正式表的页眉、正文和页脚部分。如果为表和其中一个节指定格式,则为该节指定的值将覆盖为整个表指定的值。不是所有的正式表格格式都适用于正式表格部分。例如,您不能将页眉、正文或页脚部分的缩进独立于包含的表。换句话说OuterLeftMargin属性不适用于正式的表节。

将表格样式应用于正式表及其部分

在模板中定义正式表样式的过程与定义非正式表样式的过程相同。

您可以将表样式应用于正式表以及其每个部分。如果将表样式应用于表本身以及其一部分(例如,标题),则截图覆盖表样式。

    注意:如果将表样式应用于单词正式表的一个或多个部分,请指定每个表列的宽度。否则,部分的列可能不会排列。

创建和格式化表行

如果您想从头构建一个表,可以使用TableRow构造函数创建行。格式化行,然后将行追加到您正在构建的表。

创建表行

mlreportgen.dom.TableRow构造函数没有参数并返回一个TableRow对象。然后,您可以创建和附加TableEntry对象的对象完成行构造。构造行后,可以将行添加到表中,使用附加函数。这个例子创建了一个两行两列的表。

进口mlreportgen.dom。*rpt =文档(“测试”);表=表(2);行= TableRow ();附加(行,表选术(“Col1”));附加(行,表选术(“Col2”));追加(表、行);行= TableRow ();附加(行,表选术(“data11”));附加(行,表选术(“data12”));追加(表、行);追加(rpt、表);关闭(rpt);rptview(rpt.outputpath);

格式化表行

使用这些格式对象和格式属性来格式化表行。

行高度格式化 格式对象 格式化属性

指定行的确切高度

rowheight.

高度

指定行的最小高度(仅限Word)

rowheight.

N/A

当表跨页流动时,使此行重复为标题行

repeataSheaderRow.

N/A

允许此行跨越页面边界

AllowBreakAcrossPages

N/A

格式表列

要格式化表列,可以使用mlreportgen.dom.tablecolspecgroup.tablecolspecgroup.对象,单独或与mlreportgen.dom.tablecolspecgroup.tablecolspecgroup.对象。用一个tablecolspecgroup.对象指定一组相邻的表列的格式。用一个TableColspec.对象覆盖,对于某些表列,列组的某些或所有格式。在这个例子中,tablecolspecgroup.属性指定0.2英寸和绿色文本的列宽度。这TableColspec.覆盖第一列的这些格式,指定0.5英寸和粗体红色文本的宽度。

进口mlreportgen.dom。*rpt =文档(“测试”);排名= 5;表=表(魔法(排名));table.border =.“单一”;表格边境宽度='1px';GRPS(1)= TableColspecGroup;grps(1).span =等级;GRPS(1).style = {宽度('0.2英寸'),颜色(“绿色”)};规格(1)= TableColSpec;规格(1)。跨度= 1;规格(1)。风格= {Width(“0.5”),粗体,颜色('红色的')};GRPS(1).colspecs = specs;table.colspecgroups = grps;追加(rpt、表);关闭(rpt);rptview(rpt.outputpath);

若要调整列的大小以适应列中表项最宽的内容,请包含ResizeToFitContents对象风格表的属性。

创建和格式化表项

如果您需要从划痕构建表,则可以使用mlreportgen.dom.tableentry.构造函数来创建表项。然后可以格式化表项并将它们添加到表行中,然后可以将这些行添加到正在构建的表中。如果需要格式化从单元格数组创建的表中的条目,可以使用TableEntryTableRow函数条目要访问一个条目,您可以格式化。

创建表条目

用一个TableEntry构造函数创建表条目。您可以选择使用构造函数来指定这些类型的条目内容:

  • 字符数组

  • 任何这些DOM对象:

    • 文本

    • 图像

    • 桌子

    • OrderedList.

    • 无序单

    • CustomElement

以编程方式格式化表项

您可以使用格式对象或TableEntry格式化属性以编程方式格式化表条目。

格式化 格式对象 格式化属性

创建入口周围的边框

边境

边境

颜色的边框

边境

边框颜色

厚度的边境

边境

BorderWidth

创建左,右,顶部或底部输入边框

边境

N/A

将条目内容从上、下、中对齐

VAlign

VAlign

条目边界和入口内容之间的空间

InnerMargin

InnerMargin

条目内容与其上、下、右或左边界之间的空白

InnerMargin

N/A

原因进入跨越多个列

ColSpan

ColSpan

导致条目跨多行

行宽

行宽

您可以为表中的所有表条目指定格式,请使用tableentriesstyle.财产的财产桌子汇编对象。例如,可以设置边框格式。

进口mlreportgen.dom。*t =表(魔法(5));t.TableEntriesStyle(边界('坚硬的'“黑”'1 px'));

属性TableEntry对象优先于tableentriesstyle.格式对象。

使用样式表格式化表项

对于HTML报告,您可以使用HTML模板样式表中定义的样式来格式化表条目。在定义表项输入样式时,请使用a道明元素选择器。例如:

道明。TableEntryWithBorder {border:5px实心红色的;}

要将模板定义的样式应用到表项,请设置TableEntry目的风格名称属性到样式的名称或将样式名称指定为第二个参数TableEntry构造函数。例如:

te = TableEntry ('你好,世界''tableentrywithborder');

也可以看看

职能

相关例子

更多关于

这个话题有用吗?