spring boot集成freemarker实现根据word模版生成文件并下载功能
一、添加maven
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
二、排除自动配置
启动类上添加@EnableAutoConfiguration(exclude = { FreeMarkerAutoConfiguration.class })
注解。
三、制作模版
1.首先将word模版文档另存为xml格式文档。
2.再将xml模版文档后缀改为.ftl,例:test.xml改为test.ftl。
3.将文件放在spring boot 项目目录resources下的templates文件夹下。
4.写入freemarker标签到模版需要替换的位置。
如果有表格有动态数据,可以使用<#list>标签。
四、代码实现
@Value("${web.upload-path}")
private String uploadPath;//生成的文件存放的位置
/**
* exFileName:生成文件名称
* fileType:生成文件类型,比如doc,xlsx
* tempName:模版名称
* map:替换的数据
*/
public void contractExport(String exFileName, String fileType, String tempName, Map<String, Object> map, HttpServletResponse response) {
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
configuration.setTemplateLoader(new ClassTemplateLoader