FreeMarker导出word
来源:互联网 发布:炉石传说大数据2017 编辑:程序博客网 时间:2024/06/05 07:31
freemarker 导出word
简介
Apache的FreeMarker是一个模板引擎:一个Java库生成基于模板和改变数据输出的文本(HTML网页,电子邮件,配置文件,源代码等)。模板中写入Freemarker模板语言( FTL ),这是一个简单的,专业的语言(而不是一个完全成熟的编程语言如PHP)。准备数据必须让真正的编程语言去操作,比如数据库查询和业务计算,然后在已经准备好的模板中显示。在模板中,你的重点是如何呈现的数据,而模板之外你的重点是控制什么样的数据呈现。
FreeMarker对于word的导出功能非常强大,相比较其他如poi等,FreeMarker都表现的极其优秀及灵活。
导入jar
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version></dependency>
语法
以下仅介绍了FreeMarker语法的皮毛,具体的语法可以参考FTL指令参考,文档中做了非常详细的介绍。
${name} : 数据展示
<#if x == 1> x is 1<#elseif x == 2> x is 2<#elseif x == 3> x is 3<#elseif x == 4> x is 4<#else> x is not 1 nor 2 nor 3 nor 4</#if>说明:1、此处的X不需要再另外这样显示${X}显示,如果比较的类型为string,那么 则需要 <#if x == '1'>,此处需要特别主要,如果是导出word的情况,不要在work中加好引号之后导出ftl文件,这样的话会导致显示数据失效,需要待ftl导出之后再修改文件内容。
<#list users as user> ${user}</#list>说明:1、循环遍历users集合
${name!''}、${name??}说明:1、${name!''} 如果name为null或者不存在时,那么就设置为''.2、${name??} 判断name是否为空的判断
代码实现
public class DocumentHandler { /* 导出文件存放的路径,此处对应resources的根目录 */ private static final String EXPORT_PATH = "/export"; private String template = null; private Configuration configuration = null; public DocumentHandler() { configuration = new Configuration(); configuration.setDefaultEncoding("UTF-8"); } public String getTemplate() { return template; } public void setTemplate(String template) { this.template = template; } /** * dataMap 需要显示的数据,需要以map对象的形式展示 * filename 写入文件保存的路径 */ public void createDoc(Map
其他
1、设置word模板,需要将画出需要展示的word模板,然后将内容另存为XML格式,最后直接将XML格式文件直接修改后缀为FTL文件。通过这样转化并不能一次性达到效果,对于数据展示需要调整FTL文件,如下:
<#if x == '1'>
如果是判断字符串,那么就不能够直接在word中写好转化,需要向转化之后再在ftl文件中修改。<#list users as user>
所有涉及到尖括号的操作都需要在转化之后再ftl文件中修改,因为通过转化会将加括号全部转化为<和>标签,这样对于FTL语言来说就无法识别。- 考虑到不是所有的数据都是存在或有值的,所以最后都加上为空判断
${name!''}
参考资料
http://freemarker.org/
0 0
- 使用freemarker 导出word
- FreeMarker + xml 导出word
- FreeMarker + xml 导出word
- freemarker 导出word
- FreeMarker 导出word步骤
- 使用FreeMarker导出Word
- FreeMarker + xml 导出word
- 使用freemarker导出Word
- 使用freemarker导出Word
- freemarker 导出word
- 使用 freemarker 导出 word
- 使用freemarker导出word
- JAVA FreeMarker导出word
- java导出word(Freemarker)
- Freemarker导出Word文件
- FreeMarker导出word
- FreeMarker实现Word导出
- freemarker导出word示例
- 设计模式-创建型-抽象工厂模式(Abstract Factory)
- 【Git/Github学习笔记】Git常用命令(代码冲突二)
- PAT-A 1027. Colors in Mars
- 糗事百科简易版(网页提交数据通过服务器处理显示到手机上)
- 别人用jquery写的图片拖拽效果
- FreeMarker导出word
- enq:TM-contention
- 拓展编辑器功能--Unity自定义编辑器窗口
- PAT-A 1029. Median
- Android ListView框架搭建:抽取Adapter共性的方法与属性进行封装
- 蜀山战纪
- 海报 定制 图片
- 濮阳租房
- IT互联网科技新闻