1.下載freemarker-2.3.19.jar數據庫
2.把要填充的內容用 ${title},${no}代替spa
3.用word 打開,保存爲2003xmlcode
4.打開生成xml文件,看下有沒有把表達式 ${title},${no} 分開,若是分開了,那麼要合併,最後保存爲ftl文件xml
5.代碼blog
public class DocUitlsDemo { private Configuration configuration=null; public DocUitlsDemo(){ configuration=new Configuration(); // configuration.setClassicCompatible(false);//空值處理 configuration.setDefaultEncoding("UTF-8"); } /** * 生成word * @param tmplatePath 模板的路徑 /com/document/temlpate * @param templateName "text.ftl" * @param data map集合的數據 * @param outputFile 文件輸出路徑 * @throws Exception */ public void createDoc(File tmplatePath,String templateName,Map<?,?> data,File outputFile) throws Exception { //設置模本裝置方法和路徑,FreeMarker支持多種模板裝載方法。能夠重servlet,classpath,數據庫裝載, //這裏咱們的模板是放在com.havenliu.document.template包下面 configuration.setDirectoryForTemplateLoading(tmplatePath); Template t=null; t = configuration.getTemplate(templateName); //輸出文檔路徑及名稱 Writer out = null; //解決出現亂碼 out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile),"UTF-8")); t.process(data, out); out.close(); } public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH)+1; int day=calendar.get(Calendar.DAY_OF_MONTH); DocUitlsDemo demo=new DocUitlsDemo(); Map<String , Object>data=new HashMap<String, Object>(); data.put("no", "gk001"); data.put("year", year+"");//這裏的年份要用字符串來表示,否則的話,就當成數字了,會有 逗號的 data.put("month", month); data.put("day", day); data.put("title", "2015-1-1"); File tmplatePath=new File("d://"); String tempalteName="template.ftl"; File outputFile=new File(tmplatePath,"xx合同.doc"); try { demo.createDoc(tmplatePath, tempalteName, data, outputFile); } catch (Exception e) { e.printStackTrace(); } System.out.println("生成成功"); } }