FreeMark行列不固定模板小记

  1. 需求
    公司产品要求做一个报表,这个报表的列数是不固定的,行数也是不固定的,当时一听,我就觉得蛋疼,瞎折腾,因为一年前做过类似需求,当时使用的是POI导出的报表,结果把自己坑了。常理中报表大部分都是列数固定,行数不一定固定。关系型数据库里数据就是这样设计的啊,但是列数不固定,就少见了。虽然一百个不情愿做这样的需求,但是谁让你不是老板呢!谁让你只是个搬砖的呢!
  2. 思考
    POI现在肯定不能用了,因为太麻烦,不灵活,可复用率低,所以这次选择使用freemark,至于如何集成,如何导出,在这里都不做详细阐述,网上成熟教程多的是,这里只分享经验,满足行列不固定的需求。
  3. 研究
    *.ftl文档其实是有自己的一套编码规则的,与EL表达式有点类似。经过一番查找,找到这几个函数,
    // 遍历集合:
		<#list empList! as emp> 
		    ${emp.name!}
		</#list>
		//申明变量的几种方式
		<#assign name=value> 
  1. 开发
    <#list listExport as plist>
        	<Row ss:AutoFitHeight="0">
        		<Cell ss:StyleID="s25"><Data ss:Type="String">${plist.dataTime!}</Data></Cell>
        		<#if plist.remitList?exists>
        			<#assign clist=plist.remitList/>
        			<#list clist as clist>
        				  <Cell ss:StyleID="s25"><Data ss:Type="String">${clist}</Data></Cell>
        			</#list>
        		</#if>
        		<Cell ss:StyleID="s25"><Data ss:Type="String">${plist.remitBalance0}</Data></Cell>
        		<Cell ss:StyleID="s25"><Data ss:Type="String">${plist.remitBalance1}</Data></Cell>
        		<Cell ss:StyleID="s25"><Data ss:Type="String">${plist.remitBalance}</Data></Cell>
        	</Row>
        </#list>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值