您的位置 首页 > 职场江湖

【英语作文编辑成word怎么弄】使用FreeMarker模板,创建word文档

1.使用FreeMarker模板引擎:模板数据模型=输出

1) FreeMarker模板:使用FreeMarker特定标签的纯文本文件。

2)数据模型:存储数据的数据结构,通常是散列存储结构(如: Hash)

3) FreeMarker框架负责将数据从一个数据模型合并到模板中,以生成输出。

2.将从属关系引入POM文件:

Dependency

GroupIdorg.freemarker/groupId

artifactidfreemarker/artifactidversion 2 . 3 . 23/version/dependency 3。创建模板文件:

将Word模板保存为XML格式的文档,然后将XML文档后缀保存为ftl修改为。

显示模板文件内容:

Html

头(电影)

meta http-equiv=' content-type ' content=' text/html;Charset=UTF-8 '

TitleInsert title here/title

/head

菩提

H1 $ {orgname}-$ {status}/h1

# if ' A '==' $ { answer1 } '

${orgName}……。

/#if

# if ' A '==' $ { answer2 } '

${orgName}成年即将到来

/#if

/body

/html4。测试工具类:

import Java . io . buffered writer;

import Java . io . file;

import Java . io . fileoutputstream;

import Java . io . outputstreamwriter;

import Java . io . writer;

Import Java。

import Java . util . *;

Import org。

Import org。Factory

Import

Import

Public class WordExportUtil {

private static logger logger=logger fac):

private static wordexportutil service=null;

Private WordExportUtil() {

超级();

}

public static wordexportutil getinstance(){

If(服务=空){

同步){

If(服务=空){

service=new WordExportUtil();

}

}

}

返回服务;

}

/* *

*

* @ param template file path eg :/template/te

* @param dataMap

* @ param export file path eg :/tmp/te

* @param loadType设置路径加载方法。1-绝对路径;2-项目相对路径

* @return

* @throws Exception

*/

public file create docfile(string template file path、mapstring、object data map、string export file path和int load type)

Template t=null

configuration configuration=new configuration);

con(' UTF-8 ');

Try {

template file path=path replace(template file path);

String ftlPath=(0,('/'));

If(加载类型==1) {

Con(新文件(ftl路径));//FTL文件所在的位置

}else {

Con()、ftl path);//类加载方式查找模板文件路径

}

string ftl file=('/')1);

T=con (ftl文件);//模板文件名

Fileoutfile=new file(导出文件路径);

Writer out=null

out=new buffered writer(new output stream writer(new file output stream(outfile)));

T.process(数据地图,输出);

} catch (Exception e) {

LOGGER.error(“导出word文档时出错”,e);

throw e;

}

Return null

}

/* *

将*路径中的\更改为/

* @param path

* @return

*/

private string path replace(string path){

While(路径!=空(' \ \') {

Path=('\\ ','/');

}

Return path

}

public static void main(string[]args){

Mapstring、object data map=new hashmapstring、object();

Getdata(数据地图);

string template file=' c : \ \ users \ \ admin \ \ desktop \ \医疗鉴定报告。FTL ';

string export file=' c : \ \ users \ \ admin \ \ desktop \ \医疗鉴定报告' calendar.millisecond '。

Try {

Wordex()。createdocfile(样板文件、数据映射、导出文件、1);

} catch (Exception e) {

//TODO Auto-generated catch block

e . printstacktrace();

}

}

/* *

*用于测试

* @param dataMap

*/

public static void getdata(mapstring、对象数据映射){

Da('orgName ',' * * * * * ');

Da('answer1 ',' A ');

Da('answer2 ',' A ');

Da(“状态”,“健康状况”);

}

}

5.语法参考

$ {.}: freemarker将输出实际值以替换花括号中的表达式。这些表达式称为interpolation(插值)。

FTL标签(FreeMarker模板的语言标签)的名称以#开头。(自定义FTL标签必须使用@而不是#。)。

注释:注释和HTML注释也相似,但用# - and -标识。与HTML注释不同,FTL注释不会出现在输出中。

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐