1.Freemarker的ftl模板导出word
如何生成ftl模板就不说了,百度一堆。
由于freemarker加载ftl模板是需要传入path的,当时开发时一直无法从linux上获取到jar包中的
ftl文件路径,换了个方案读流写流生成新的ftl模板文件。
依赖直接使用springboot集成好的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker<artifactId>
</dependency>
private static final String TEMPDIR = FileUtils.getTempDirectoryPath();
static{
Configuration config = new Configuration();
config.setDefaultEncodeing("UTF-8");
}
public File exportWord(Map<String,String> dataMap,String ftlName,String resourceFile){
String tempDir = getTempFilePath(ftlName,resourceFile);
config.setDirectoryForTemplateLoading(new File(tempDir ));
Template template = null;
File fileDoc = null;
try{
template = config.getTemplate(ftlName);
fileDoc = genDoc(dataMap,template);
}catch (Excetion e){
return null;
}
return fileDoc;
}