您可以使用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);
你可以使用条目
用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);
使用这些格式对象和格式属性来格式化表。
格式化 | 格式对象 | 格式化属性 |
---|---|---|
表格的宽度 |
|
|
表格背景颜色 |
|
|
创建表的边框 |
|
|
颜色的边框 |
|
|
厚度的边境 |
|
|
创建左,右,顶部或底表边框 |
|
N/A |
折叠表格和表格条目边界(HTML) |
|
|
创建列分隔符 |
|
|
列分隔符颜色 |
|
|
柱分离器厚度 |
|
|
创建行分隔符 |
|
|
行分隔符颜色 |
|
|
行分隔符厚度 |
|
|
从左边缩进表格 |
|
|
桌子前后留出空间 |
|
N/A |
桌子右边的空间 |
|
N/A |
将表格左、右或中间对齐 |
|
|
指定表项流程(左右或右到左) |
|
|
调整表列的大小以适应内容 |
|
N/A |
一种桌子
对象具有允许您为所有条目指定相同格式或格式的属性。
格式化 | 表对象属性 |
---|---|
垂直对齐(上、中、下) |
|
水平对齐条目(左,右,中心) |
|
在条目边界和内容之间创建空间(填充) |
|
将一组格式对象应用于所有表项 |
|
你可以用mlreportgen.dom.textorientation.
格式化对象以在表条目垂直或水平中制作文本。
使用KeepLinesTogether
和KeepWithNext
段落格式保持表格标题和表格在同一页上。本例使用表条目索引创建了表标题、表内容,并使表标题行加粗。为了使表保持在同一页上,代码指定KeepLinesTogether
和KeepWithNext
对于除最后一行以外的所有行。最后一行只有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);
可以在模板中使用现有的Word样式或修改或添加的模板样式格式化表。
要在Word模板中定义表样式,首先使用以下步骤。
打开与报表一起使用的Word模板。
打开风格窗格。
点击管理风格按钮。
点击新风格。
在“从格式创建新样式”对话框中,设置风格类型来桌子
。
有关在DOM对象中使用Word样式的更多信息,请参见修改Microsoft Word模板中的样式。
可以使用模板中定义的CSS样式格式化HTML和PDF表。
要在HTML或PDF模板中定义表样式,请在A上使用选择器表格
风格。例如:
表.Mytable {边界底颜色:RGB(128,128,128);边界底宽:薄;边境崩溃:崩溃;}
提示使用CSS子选择器( 表格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数据的小区数组,用于主体,标题和页脚部分。
如果您完全或部分地从头开始构建正式表,则可以使用汇编
对象的功能appendHeaderRow
和appendBodyRow
将行追加到表格页眉和页脚部分。这拼写.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);
使用这些格式对象和格式属性来格式化表行。
行高度格式化 | 格式对象 | 格式化属性 |
---|---|---|
指定行的确切高度 |
|
|
指定行的最小高度(仅限Word) |
|
N/A |
当表跨页流动时,使此行重复为标题行 |
|
N/A |
允许此行跨越页面边界 |
|
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.
构造函数来创建表项。然后可以格式化表项并将它们添加到表行中,然后可以将这些行添加到正在构建的表中。如果需要格式化从单元格数组创建的表中的条目,可以使用TableEntry
或TableRow
函数条目
要访问一个条目,您可以格式化。
用一个TableEntry
构造函数创建表条目。您可以选择使用构造函数来指定这些类型的条目内容:
字符数组
任何这些DOM对象:
段
文本
图像
桌子
OrderedList.
无序单
CustomElement
您可以使用格式对象或TableEntry
格式化属性以编程方式格式化表条目。
格式化 | 格式对象 | 格式化属性 |
---|---|---|
创建入口周围的边框 |
|
|
颜色的边框 |
|
|
厚度的边境 |
|
|
创建左,右,顶部或底部输入边框 |
|
N/A |
将条目内容从上、下、中对齐 |
|
|
条目边界和入口内容之间的空间 |
|
|
条目内容与其上、下、右或左边界之间的空白 |
|
N/A |
原因进入跨越多个列 |
|
|
导致条目跨多行 |
|
|
您可以为表中的所有表条目指定格式,请使用tableentriesstyle.
财产的财产桌子
或汇编
对象。例如,可以设置边框格式。
进口mlreportgen.dom。*t =表(魔法(5));t.TableEntriesStyle(边界('坚硬的'那“黑”那'1 px'));
属性TableEntry
对象优先于tableentriesstyle.
格式对象。
对于HTML报告,您可以使用HTML模板样式表中定义的样式来格式化表条目。在定义表项输入样式时,请使用a道明
元素选择器。例如:
道明。TableEntryWithBorder {border:5px实心红色的;}
要将模板定义的样式应用到表项,请设置TableEntry
目的风格名称
属性到样式的名称或将样式名称指定为第二个参数TableEntry
构造函数。例如:
te = TableEntry ('你好,世界'那'tableentrywithborder');
mlreportgen.dom.allowbreakacrosspages.
|mlreportgen.dom.ColSep
|mlreportgen.dom.flowdirection.
|mlreportgen.dom.FormalTable
|mlreportgen.dom.repeataSheaderrow.
|mlreportgen.dom.ResizetofitContents.
|mlreportgen.dom.RowHeight
|mlreportgen.dom.RowSep
|mlreportgen.dom.Table
|mlreportgen.dom.TableBody
|mlreportgen.dom.tableColspec.
|mlreportgen.dom.tablecolspecgroup.tablecolspecgroup.
|mlreportgen.dom.tableentry.
|mlreportgen.dom.TableFooter
|mlreportgen.dom.TableHeader
|mlreportgen.dom.tableheaderentry.
|mlreportgen.dom.TableRow
mlreportgen.dom.FormalTable.appendFooterRow
|mlreportgen.dom.FormalTable.appendHeaderRow
|mlreportgen.dom.TableRow.append