欢迎来到天天文库
浏览记录
ID:6031850
大小:225.85 KB
页数:8页
时间:2017-12-31
《java利用freemarker生成word》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第一步:将事先准备的word文档另存为xml格式第二步:利用foxe_CHS打开xml可以按F8进行排版,找到左侧w:tbl节点,找到需要填充数据的地方,用freemarker标记依次类推,找到所有需要填充数据的地方,用freemarker标记,填充这些位置,不过这样的话,只能针对单行数据显示,要想多行显示数据,标记这个地方还需要做些工作,如上,准备工作也基本做好第三步:开始正式的demo。首先你要有这些:freemarker的开源包,如果没有,可以网上下载一个importfreemarker.template
2、.Configuration;importfreemarker.template.Template;importfreemarker.template.TemplateException;接下来这么做:目录packagecom.test.freemarker.report;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.Ou
3、tputStreamWriter;importjava.io.Writer;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importfreemarker.template.Configuration;importfreemarker.template.Template;importfreemarker.template.TemplateException;publicclas
4、sDocumentHandler{privateConfigurationconfiguration=null;publicDocumentHandler(){configuration=newConfiguration();configuration.setDefaultEncoding("utf-8");}publicvoidcreateDoc(){//要填入模本的数据文件MapdataMap=newHashMap();getData(dataMap);//设置模本装置方法和路径,FreeMarker支持多
5、种模板装载方法。可以重servlet,classpath,数据库装载,//这里我们的模板是放在com.havenliu.document.template包下面configuration.setClassForTemplateLoading(this.getClass(),"/com/test/freemarker/report");Templatet=null;try{//test.ftl为要装载的模板t=configuration.getTemplate("test.xml");t.setEncoding(
6、"utf-8");}catch(IOExceptione){e.printStackTrace();}//输出文档路径及名称FileoutFile=newFile("E:/test.doc");Writerout=null;try{out=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(outFile),"utf-8"));}catch(Exceptione1){e1.printStackTrace();}try{t.process(dat
7、aMap,out);out.close();}catch(TemplateExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}/****注意dataMap里存放的数据Key值要与模板中的参数相对应****@paramdataMap**/privatevoidgetData(MapdataMap){dataMap.put("title_name","用户信息2013年6月15日");Listtable2=newArr
8、ayList();for(inti=0;i<5;i++){Table2t=newTable2();t.setUser_name("张三");t.setOrg_name("微软公司");t.setDept_name("事业部");table2.add(t);}dataMap.put("table2",table2);}//测试类publicstaticvoidmain(String[]a
此文档下载收益归作者所有