freemarkerftl模板_Ftl模板⽣成复杂Excel表格说明
各位朋友⼤家好,由于⼯作繁忙,好久都没有上传⼯作中遇到的⼤坑的解决办法了。今天给⼤家总结⼀下,ftl模板⽣成复杂Excel表格之⼀:动态合并单元格!
本说明只是根据当前⼯作需要,临时使⽤freemarker的ftl模板,如有不⾜之处还望各位朋友不吝赐教!
关于教师节的歌⼀.页⾯展⽰部分
本次需求是需要制作采购平台的内容数据分析:包括采购员的、物料的和供应商的。采购员和供应商的数据分析⼗分的简单,只是⼀对⼀显⽰,按照之前的写法循环遍历即可;⽽物料的数据分析着实让我有些犯难,主要问题就是单元格的动态合并!客户要求的页⾯显⽰如下图:
客户要求在平台页⾯展⽰的样式
在页⾯展⽰中,相同物料名称等相同项需要合并单元格,其余项分开展⽰。在脑海中早就有成品样式,但是写法上需要能整合到当前程序代码中。在经过⼀番试验和百度后,我到了合适的写法,代码⾮常简单。
张翰因郑爽马天宇哭了页⾯循环的前半部分
页⾯循环的后半部分黄宗泽的个人资料简介
程序使⽤的是jsp页⾯写法,循环两次list,到⼀个合并单元格的标志(本次使⽤的是
物料名称),判断之前需要添加⼏个临时变量,根据变量判断什么时候该合并单元格以及需要合并的⾏数。这种写法完全能够满⾜页⾯展⽰的需要。灵感源
⾃:www.php/js-tutorial-347365.html(JSP中动态合并单元格的实例代码)。
⼆.Ftl模板写法部分
Ftl模板的合并单元格与页⾯是⼀样的,先到需要合并的字段,获得合并的⾏数值,根据条件循环遍历即可!但是由于接触freemarker的时间并不长,还属于⼩学⽣阶段,所以对部分⽣成合并单元格的属性并不是很了解,因此耗费了些许时间。miui论坛
ftl模板中的属性及写法
在截图中,ExpandedRowCount表⽰的是下载表格的⾏数,例如当ExpandedRowCount=“2”但表格中有3⾏内容,下载后会打不开表格(显⽰⽂件已损坏);因此,⼀定要在⽣成ftl模板后将ExpandedRowCount的值修改为较⼤数值。Index=“n”表⽰的是表格在同⼀⾏中向后移位的属性,当它邮寄电脑
在Column中代表的是下载表格打开后显⽰的第n+1列之后的内容,查看全部内容需要移动表格;在Cell中代表的是当前⾏中的第n列,之后会有截图展⽰。
全国一卷省份有哪些
ftl模板中的临时变量属性
在截图中,assign代表了临时变量的属性,类似于jsp中的var。将所需要的变量赋值,使⽤⽅式可参照jsp页⾯的判断⽅法。
ftl模板中的合并单元格属性
在截图中,MergeDown代表了⽣成Excel表格中的合并单元格属性,在需要合并⾏的Cell中输⼊需要合并的⾏数-1即可;例如,如果需要合并两⾏,那么MergeDown=“1”。在合并⾏后边显⽰的不需要合并的⾏的第⼀⾏Cell中加⼊Index属性,ss:Index="n",n的值为当前⾏的⾏数;例如,截图中需要合并的⾏是2/3/4/5/6,从第七⾏开始不需要再合并,所以n=”7”,之后⾏中的内容就单⾏正常显⽰。
注:当某⼀⾏内容可能会含有特殊字符时,使⽤?html即可解决。防⽌⽂件下载后,打开会显⽰⽂件已损坏。