JavaWeb开发中采用FreeMarker生成Excel表格
最近做了一个需求,要求导出一个采购合同的Excel表格,这个表格样式比较多。由于是合同,这个Excel表格里面有好多格式要求,比如结尾处签字那部分就有格式要求。这里介绍种采用FreeMarker的api来生成Excel文件的方案 一、方案的对比 针对这个需求我想了2个方案,介绍如下 方案一:先做一个合同的表格模板,然后把变量都填充成类似EL表达式的样子。然后通过poi 相关类把模板读到内存中,把里面的变量的值替换,然后生成下载文件。 方案二:先做一个合同的表格模板,然后转换成xml文件,然后再改成FreeMarker的ftl文件。通过FreeMarker的Api 把往模板上填充数据,然后生成下载文件。 简单分析下上面的2个方案: 方案一比较适合那种模板中的行数不会变的场景,如果合同的头和尾是固定的,中间的行数不固定,那么就方案就不适合了。 方案二比方案一更灵活,由于FreeMarker的模板文件中可以使用很多标签,如( <#List></#List> );应付这种中间行数不固定的场景就是小case了。 所以,这种导出的Excel有格式要求的, 采用FreeMarker生成Excel是最好实现的。 二、介绍下FreeMarker方案实现过程 (1)把Excel模板的格式调好,另存为xml文件 (2)制作一个ftl模板,把xml文件内容copy进去,把变量换成FreeMarker的插值