使用freemarker生成复杂的excel表格

来源:互联网 发布:熊猫加速器mac 编辑:程序博客网 时间:2024/06/07 14:29

首先这个idea和做法是来自于这位大哥的 http://blog.csdn.net/u010722643/article/details/41732607 我在公司的开发上运用了这一套,然后+上了自己的一些内容,所以希望大家如果要学习或了解原理的话,还是看看这位大哥的原文,蛮不错的一篇文章,以下内容主要从实操为主。

要实现freemarker的模板导出,是需要把excel文件转化成模板文件,一种freemarker可以识别的格式.ftl:这里写图片描述
1、选一个比较纯净的excel文件,最好是把对应的excel条数给删掉,然后保存excel成microsoft自带的xml格式

2、然后相对应的,把.xml的后缀改为.ftl格式的,直接修改文件名就可以了!
3、最后就是要修改对应的内容,把无关的标签删掉以及增加动态的freemarker标签,实现动态生成excel表格的功能:
对于一个.ftl文件来说,需要的是设置对应的动态生成的标签。这里写图片描述

像这里就是酱紫,必须动态的设置对应的自增,这里用到了JSTL的语法,对应的对象用$符号包裹,意思是循环并获得对象。这里写图片描述

4、这边用了list来递归循环数据。
我这里用了两个workSheet来展示数据,也是这个freemarker给予我们优势的地方,把两个表格二合一到一个excel里面,做法其实就是再创建一个workSheet来就行了。
我后续会加上对应的下载模板的一个链接,只要格式对了,就能简单的导出excel了!
5、最后就是上代码了!
这里写图片描述

要注意的就是 这个out是Spring mvc里面的httpResponse.getWriter()方法获得的!

总结:诚然,用这种方式生成的excel是方便,但是总的来说,兼容性不太好,实际上这个生成的是一套xml文件,在wps和microsoft excel下打开是正常的,但是每次都会提示格式不正确(microsoft excel),但是又可以打开,而在移动端的表现也是差强人意,android可以打开,然而在IOS的情况下就打开不了,或者打开就被识别成了xml格式。
像这种情况,我还是觉得用POI去实现导出会是更好的选择,导出生成真正的excel才是最佳的选择。

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 十个月小孩不爱吃饭怎么办 十个月的小孩不吃饭怎么办 家长要调幼儿园监控怎么办 自己带孩子婆婆生气怎么办 婆婆老是觉得我奶水不够怎么办 1岁小儿特别懒怎么办 17的孩子很懒怎么办 上大班的孩子不愿写字怎么办 快上中班的小朋友不爱学习怎么办 小学生两边肩膀不平应该怎么办 写字右肩膀疼是怎么办 开车久了肩膀疼怎么办 3岁宝宝撕书怎么办 孩子上幼儿园不爱写字怎么办 一年级小孩不爱做作业怎么办 小孩不愿多做作业怎么办 小孩一年级不自觉做作业怎么办 小孩会读不会写怎么办 好多字都不会写怎么办 写作业怎么办才能写快 五周宝宝爱玩不写字怎么办 爱玩手机的小孩怎么办? 一年级学生记不住生字怎么办 一年级小孩记不住生字怎么办 配镜度数高了怎么办 宝宝两岁半不肯坐马桶拉臭臭怎么办 儿子字写得不好 怎么办 小孩不听话不爱读书和写字怎么办 两岁宝宝不愿意穿衣服怎么办 做题粗心不认真怎么办 5岁宝宝不会写字怎么办 四岁宝宝不会写字怎么办 4岁宝宝不写字怎么办 四岁宝宝不写字怎么办 孩子学习粗心计算能力差怎么办 一年级的小朋友不爱看书怎么办 马上要生了害怕怎么办 孩子做题不爱读题怎么办 孩子作业写的慢怎么办 孩子学习不好怎么办我们有绝招 英语不会做题怎么办呢?