java freemark生成word文檔

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("生成成功");
    }
}
相關文章
相關標籤/搜索