主要内容

Excel PDF

此示例演示如何使用MATLAB®报表生成器从Microsoft®Excel®电子表格创建PDF报表™. 在本例中,Excel电子表格按食品类别汇总年度食品进口。电子表格的来源是美国农业部经济研究服务处。电子表格可在美国进口食品.该示例使用了电子表格的本地副本。

导入Excel数据

从电子表格导入数据,Alltables.xlsx,转换为MATLAB®单元阵列。

xlsfile=“Alltables.xlsx”;年=读取单元(xlsfile,“表”“食品美元”“范围”“D2:V2”);数据=读取单元(xlsfile,“表”“食品美元”“范围”“D7:V21”);类型=读取单元(xlsfile,“表”“食品美元”“范围”“A7:A21”);单位= readtable (xlsfile,“表”“食品美元”“范围”“K3: K3”“ReadVariableNames”,假);

创建报告

导入DOM和报表API包,这样就不必使用长的、完全限定的类名。

进口mlreportgen.report*进口mlreportgen.dom*

创建一个容器来保存PDF报表的报表内容。

rpt=报告(“食品进口报告”“pdf”);

创建标题页

创建标题页并将其添加到报告中。

tp=标题页();标题=《基于美国农业部多年数据的食品进口报告》;tp.图像=“peppers.png”;tp。作者=“无名氏”; tp.PubDate=日期;添加(rpt,tp);

创建目录

使用创建和添加目录mlreportgen.report.TableofContents记者。该报表根据报表中的章节和章节标题自动创建目录。

toc = TableOfContents ();add (rpt, toc);

在MATLAB中绘制数据

创建并格式化按食品类别划分的年度进口线图。

图(“颜色”“w”);ax =轴(图,“字体大小”t=str2倍(年);I = 1:size(data,1) hold在…上;绘图(ax,t,[数据{i,:}],“线宽”,1);结束xlabel(“年”);ylabel(units.Var1{:});图例(类型,“地点”“东北外”);头衔(“食品进口”);

将Plot添加到报告中

创建一个章节,并将线条图添加到其中。

ch =章(“进口总结图”)图=图(图);添加(ch,图);添加(rpt,ch);

将数据转换为适合创建DOM表的表单

格式化数据并创建单个字符串数组,表格数据,可以用来创建mlreportgen.dom.Table对象

tableData=cellfun(@(x)sprintf(“% .0f”,x),数据);tableData=[类型tableData];tableHeader=[""字符串(年)];tableData=[tableHeader;tableData]
表格数据=16×20串“1999”“2000”“2001”“2002”“2003”“2004”“2005”“2006”“2007”“2008”“2009”“2010”“2011”“2012”“2013”“2014”“2015”“2016”“2017”“活肉类”“1190”“1419”“1771”“1724”“1277”“1134”“1672”“2172”“2588”“2266”“1656”“2007”“1886”“2192”“2190”“3009”“2773”“2103”“2020”“肉类”“3261”“3828”“4256”“4283”“4427”“5719”“5752”“5244”“5367”“5060”“4612”“5088”“5755”“6245”“6530”“8940”“9992”“8589”“8878”“鱼贝类2/ 8860”“9880”“9663”“9963”“10860”“11106”“11840”“13112”“13435”“13912”“12934”“14517”“16459”“16468”“17784”“20054”“18521”“19261”“21324”“乳制品”“930”“922”“996”“1009”“1110”“1292”“1306”“1501”“1596”“1353”“1347”“1502”“1604”“1649”“1844”“1893”“1876”“1827”“蔬菜”“3632”“3771”“4157”“4391”“5082”“5730”“6043”“6619”“7256”“7801”“7525”“8706”“9667”“9946”“10734”“10930”“11290”“12469”“12743”“水果”“4764”“4629”“4665”“5068”“5558”“5962”“6874”“7707”“9217”“9888”“9640”“10649”“12538”“13602”“14808”“15955”“17157”“18383”"坚果" "794" "809" "670" "701" "776" "1078" "1122" "1099" "1181" "1351" "1278" "1462" "1863" "2000" "2000" "2361" "2767" "2871" "3301" "咖啡,茶,食品、香料、调味品、3604、3442、2401、2455、2872、3144、3771、4195、4791、5581、5160、6265、9716、8726、7633、8299、8536、8311、9069、谷物、2659、2735、2990、3343、3618、4010、441、4910、5915、7690、6846、7138、8063、9111、10257、10031、10030、10179、10861、植物油、1357、1362、1177、1302、1507、2241"2363" "2818" "3517" "5695" "4039" "4509" "6794" "6236" "6665" "7337" "6304" "6522" "7225" "Sugar and candy" "1618" "1572" "1581" "1843" "2131" "2111" "2474" "3021" "2606" "3011" "3081" "4107" "5207" "4784" "4327" "4582" "4705" "4693" "4720" "Cocoa and chocolate" "1522" "1404" "1536" "1761" "2439" "2484" "2751" "2659" "2662" "3299" "3476" "4295" "4681" "4096" "4159" "4728" "4860" "5081" "5007" "Other edible products" "2121" "2102" "2252" "2482" "3637" "4784" "5536" "5963" "6080" "6701" "6111" "6782" "8133" "10978" "9831" "9716" "9592" "9351" "10134" "Beverages 3/" "4412" "4816" "5101" "5795" "6598" "7024" "7887" "9212" "9913" "9833" "8721" "9263" "10143" "10858" "11248" "11964" "12786" "13493" "14383" "Liquors" "2382" "2726" "2847" "3091" "3438" "3709" "4090" "4512" "5048" "5040" "4787" "5189" "5734" "6023" "6392" "6587" "6774" "7165" "7363"

在报告中创建一个食品进口表

创建一个mlreportgen.dom.Table对象中的食品导入数据表格数据变量。指定表格格式。

表=表(tableData);表格风格= {...边界(“固体”),...罗塞普(“固体”),...ColSep (“固体”),...外缘蛋白(“5 pt”“5 pt”“5 pt”“5 pt”)};table.TableEntriessStyle={InnerMargin(“2pt”)}; 头型={...写成BackgroundColor (“LightBlue”),...粗体};表。第(1)行。样式=人头样式;grps=表格组;grps.Span=1;grps.Style=人头式;表1.ColSpecGroups=GRP;

通过垂直切片使表格适合于报表页

要在报表页面上容纳宽表,请使用mlreportgen.utils.TableSlicer对象

slicer=mlreportgen.utils.TableSlicer(...“表格”、表...“MaxCols”8...“重复Cols”,1); slices=slicer.slice();

为表切片添加章节

为每个表切片创建一个章节,并将章节添加到报告中。

切片=切片ch=章节();章节标题=strjoin([“数据”年份(切片:StartCol-1)...“到”年(slice.EndCol-1)]);添加(ch, slice.Table);add (rpt, ch);结束

关闭并查看报告

关闭(rpt);rptview (rpt)

另请参阅

|||||

相关话题