主要内容

跨越行和列的表条目

这些示例显示了如何制作表入口行和列。

非正式表

此示例显示了如何使用DOM非正式表对象中的行和列跨越以创建下表。

非正式桌子是一张不包括预定义头部,身体和脚部的桌子。但是,如本示例所示,您可以将非正式表的前几行格式为标题。

导入DOM软件包,因此您不必使用长期,完全合格的类名称。

进口mlreportgen.dom。*

设置文档并添加标题来描述表。

%要创建PDF报告,请将输出类型从“ DOCX”更改为“ PDF”。%要创建HTML报告,将“ DOCX”更改为“ html”或“ html-file”%分别为多文件或单文件报告。rpt =文档('我的报告',,,,'docx');h =标题(1,“使用非正式表的多行和列表条目”);h.style = [h.style {halign(halign('中央')}];附加(RPT,H);

创建单元阵列,以使不同文档组件使用的样式使用。包含的表跨越页面的宽度,并具有将条目分开的实线。主标头是钢蓝色,然后子标头是较轻的天蓝色。

tablestyle = {width('100%'), 边界('坚硬的'),Colsep('坚硬的'),rowsep('坚硬的')};mainheaderrowstyle = {valign('中间'),innermargin('2pt',,,,'2pt',,,,'2pt',,,,'2pt'),...背景颜色(“钢布鲁”)};mainheadertextStyle = {bold,outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'), 字体系列('arial')};subheaderrowstyle = {valign('中间'),innermargin('2pt',,,,'2pt',,,,'2pt',,,,'2pt'), 背景颜色('天蓝色')};subheadertextStyle = {bold,outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'), 字体系列('arial')};bodystyle = {outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'),innermargin('2pt',,,,'2pt',,,,'2pt',,,,'0pt')};

创建一些示例数据以包含在表中。然后,创建表对象。

数据= {'约翰',,,,“史密斯”,,,,'纳蒂克,马';'简',,,,'doe',,,,'波士顿,马萨诸塞州'};t =表(3);t.Style = [T.Style tablestyle];

为包含名称和地址标题的表的第一行创建一个tablerow对象。名称标头有两个子标题,因此跨越了两个列。这是由表条目的Colspan属性设置的。地址标头没有任何子标题,因此跨越了两行。这是使用表条目的Rowspan属性设置的。

r = tablerow;r.Style = [R.Style Mainheaderrowstyle];p =段落('姓名');p.Style = [P.Style mainheadertextStyle {halign(Halign('中央')}];te = tableentry(p);te.colspan = 2;附加(r,te);p =段落('地址');p.Style = [P.Style MainheadertextStyle];te = tableentry(p);te.rowspan = 2;附加(r,te);附加(t,r);

为第一个和最后一个名称的子标头创建第二行。即使表格为三列宽,第二行只包含两个条目,因为地址字段跨越了第一行和第二行。

r = tablerow;r.Style = [R.Style subheaderrowstyle];p =段落('第一的');p.Style = [P.Style子副本Ststyle];te = tableentry(p);附加(r,te);p =段落('最后的');p.Style = [P.Style子副本Ststyle];te = tableentry(p);附加(r,te);附加(t,r);

循环浏览示例数据以将其添加到表中。

为了k = 1:size(数据,1)r = tablerow;R.Style = [R.Style BodyStyle];te = tableentry(data {k,1});附加(r,te);te = tableentry(data {k,2});附加(r,te);te = tableentry(data {k,3});附加(r,te);附加(t,r);结尾

将表添加到文档中。

附加(RPT,T);

正式桌子

此示例显示了如何在DOM正式表对象中使用ROW和列跨越以创建下表。

正式表是一张桌子,分别由三个子桌组成,分别为表格的标题,身体和页脚部分组成。使用正式表代替非正式表将标头分开,该标头需要与数据进行特殊格式,可以将其直接传递给正式的表构造函数以填充身体表。

导入DOM软件包,因此您不必使用长,完全合格的类名称。

进口mlreportgen.dom。*

移动到现有文档中的新页面,并添加标题来描述表。

br = pagebreak();附加(RPT,BR);h =标题(1,“使用正式表的多行和列表条目”);h.style = [h.style {halign(halign('中央')}];附加(RPT,H);

创建单元阵列,以使不同文档组件使用的样式使用。包含的表跨越页面的宽度,并具有将条目分开的实线。主标头是钢蓝色,然后子标头是较轻的天蓝色。

tablestyle = {width('100%'), 边界('坚硬的'),Colsep('坚硬的'),rowsep('坚硬的')};mainheaderrowstyle = {valign('中间'),innermargin('2pt',,,,'2pt',,,,'2pt',,,,'2pt'),...背景颜色(“钢布鲁”)};mainheadertextStyle = {bold,outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'), 字体系列('arial')};subheaderrowstyle = {valign('中间'),innermargin('2pt',,,,'2pt',,,,'2pt',,,,'2pt'), 背景颜色('天蓝色')};subheadertextStyle = {bold,outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'), 字体系列('arial')};bodystyle = {outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt')};

创建一些示例数据以包含在表中。然后,在身体部分中使用示例数据创建一个形式的对象。

数据= {'约翰',,,,“史密斯”,,,,'纳蒂克,马';'简',,,,'doe',,,,'波士顿,马萨诸塞州'};t =正式t(data);t.Style = [T.Style tablestyle];t.body.tabletriesstyle = [t.body.table.tabletriesstyle,bodystyle];

使用与上一个示例相同的方法构建形式对象的标题表。为包含名称和地址标题的表的第一行创建一个tablerow对象。名称标头有两个子标题,因此跨越了两个列。这是由表条目的Colspan属性设置的。地址标头没有任何子标题,因此跨越了两行。这是使用表条目的Rowspan属性设置的。

r = tablerow;r.Style = [R.Style Mainheaderrowstyle];p =段落('姓名');p.Style = [P.Style mainheadertextStyle {halign(Halign('中央')}];te = tableentry(p);Te.Style = [Te.Style MainheadertextStyle];te.colspan = 2;附加(r,te);p =段落('地址');p.Style = [P.Style MainheadertextStyle];te = tableentry(p);Te.Style = [Te.Style MainheadertextStyle];te.rowspan = 2;附加(r,te);附加(T.Header,R);

为第一个和最后一个名称的子标头创建第二行。即使表格为三列宽,第二行只包含两个条目,因为地址字段跨越了第一行和第二行。

r = tablerow;r.Style = [R.Style subheaderrowstyle];p =段落('第一的');p.Style = [P.Style子副本Ststyle];te = tableentry(p);附加(r,te);p =段落('最后的');p.Style = [P.Style子副本Ststyle];te = tableentry(p);附加(r,te);附加(T.Header,R);

将表添加到文档中。

附加(RPT,T);

页面布局表

此示例显示了如何使用行和列跨度为复杂布局创建一个不可见的页面布局表。

导入DOM软件包,因此您不必使用长,完全合格的类名称。

进口mlreportgen.dom。*

移动到现有文档中的新页面,并添加标题来描述表。

br = pagebreak();附加(RPT,BR);h =标题(1,“多列无形桌子”);h.style = [h.style {halign(halign('中央')}];附加(RPT,H);

确定页面上不同组件的样式。主表是看不见的,因此没有边框或分离器。

维护= {width(width('100%'), 边界('没有任何')Colsep('没有任何'),rowsep('没有任何')};dataTableStyle = {border('坚硬的'),Colsep(“点缀”),rowsep('坚硬的'),...outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt')};datatableentriesstyle = {outermargin('0pt',,,,'0pt',,,,'0pt',,,,'0pt'),位('中间')};histStyle = {innermargin('2pt',,,,'2pt',,,,'2pt',,,,'2pt'),...起伏('中央'),位('底部'), 宽度('5in'), 高度('4进')};

创建代表500个随机硬币翻转的示例数据。然后,创建文本,形式和图像对象以显示有关数据的信息。

coinflips = randi(2,[500,10]);numheads = sum(coinflips-1,2);p = text([[“以下图显示了500枚硬币翻转10次的试验的结果,”,,,,...'硬币降落在头上的次数被计数。',,,,...“该表显示了前20个试验的结果。”);dataheader = {'审判',,,,“头”};databody = [(1:20)',numheads(1:20)];datatable =正式台(dataheader,databody);datatable.tableentriesstyle = [dataTable.tableTableRiessTyle dataTableTableTriessTyle];datatable.header.style = [datatable.header.style {bold}];datatable.Style = [DataTable.Style DataTableStyle];直方图(Numheads);标题('结果')xlabel(“头数”)ylabel(“试验数”)saveas(GCF,'contangrage_img.png');关闭(gcf)h =图像('contangrage_img.png');

创建不可见的表并开始添加组件。将数据表添加到第一行,并指定它跨越两个行。

t =表(2);t.Style = [T.Style VarateStyle];row1 = tablerow;row1.Style = [Row1.Style {width(width('100%')}];entry1 = tableentry;append(entry1,datatable);entry1.Rowspan = 2;entry1.style = [entry1.Style {width(width(“ 40%”)}];附加(Row1,Entry1);

将文本对象也添加到第一行,然后将行附加到表格上。

entry2 = tableentry(p);entry2.style = [entry2.style {width(width(“ 60%”)}];附加(Row1,Entry2);附加(T,Row1);

创建一个新的行,并将直方图图像添加为唯一的条目。数据表已经填充了第一行和第二行的第一列,因此直方图将放置在第二列中。

row2 = tablerow;entry3 = tableentry;h.Style = [H.Style HistStyle];附加(entry3,h);附加(Row2,Entry3);entry3.style = [entry3.style {width(width('60%')}];附加(T,Row2);

生成并显示报告。

附加(RPT,T);关闭(RPT);RPTView(RPT);