• DocumentHandler-ftl生成word


    import java.io.BufferedWriter;

    import java.io.File;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.OutputStreamWriter;

    import java.io.Writer;

    import java.util.Map;

    import freemarker.template.Configuration;

    import freemarker.template.Template;

    public class DocumentHandler {

             private Configuration configuration = null;

             /**

              * 创建configuration

              * @param ftlSrc  模版存放路径,ftl所在的文件夹路径

              */

             public DocumentHandler(String ftlSrc) {

                       configuration = new Configuration();

                       configuration.setDefaultEncoding("utf-8");

                       try {

                                configuration.setDirectoryForTemplateLoading(new File(ftlSrc));

                       } catch (IOException e) {

                                e.printStackTrace();

                       }

             }

            

             /**

              * 根据ftl生成word方法

              * @param dataMap   -- 数据集

              * @param fileSrc   -- 生成后的文件地址

              * @param ftlName   -- ftl模版名称

              */

             public void createOrderAndDown(Map<String,Object> dataMap,String fileSrc,String ftlName) {

                       Template t=null;

                       try {

                                //test.ftl为要装载的模板

                                t = configuration.getTemplate(ftlName);

                               

                       } catch (IOException e) {

                                e.printStackTrace();

                       }

                       //输出文档路径及名称

                       File outFile = new File(fileSrc);

                        //如果输出目标文件夹不存在,则创建

            if (!outFile.getParentFile().exists()){

                outFile.getParentFile().mkdirs();

            }

                       Writer out = null;

                       try {

                                out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));

                     //生成

                                t.process(dataMap, out);

                      

                       } catch (Exception e) {

                                e.printStackTrace();

                       }finally {

                                if(out!=null){

                                         //关闭流

                         try {

                                  out.flush();

                                                   out.close();

                                         } catch (IOException e) {

                                                   e.printStackTrace();

                                         }

                                }

                       }       

             }

             /**

              * 要把模版生成合同

              * @param dataMap   数据map集合

              * @param fileSrc   生成后的文件路径

              */

             public void createDoc(Map<String,Object> dataMap,String fileSrc) {

                       //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,

                       //这里我们的模板是放在/com/zhiwei/credit/util/xmlToWord/firstCreditor包下面

             //      configuration.setClassForTemplateLoading(this.getClass(), "/com/zhiwei/credit/util/xmlToWord/firstCreditor");

             //      configuration.setServletContextForTemplateLoading(ServletActionContext.getContext(), "WEB-INF/templates");

             //      configuration.setDirectoryForTemplateLoading(arg0);

                       Template t=null;

                       try {

                                //test.ftl为要装载的模板

                                t = configuration.getTemplate("firstCreditor.ftl");

                       } catch (IOException e) {

                                e.printStackTrace();

                       }

                       //输出文档路径及名称

                       File outFile = new File(fileSrc);

                        //如果输出目标文件夹不存在,则创建

            if (!outFile.getParentFile().exists()){

                outFile.getParentFile().mkdirs();

            }

                       Writer out = null;

                       try {

                                out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));

                     //生成

                                t.process(dataMap, out);

                       } catch (Exception e) {

                                e.printStackTrace();

                       }finally {

                                if(out!=null){

                                         //关闭流

                         try {

                                  out.flush();

                                                   out.close();

                                         } catch (IOException e) {

                                                   e.printStackTrace();

                                         }

                                }

                       }

             }

            

    }

  • 相关阅读:
    split 过滤空的元素
    Python内置函数(65)——staticmethod
    Python内置函数(64)——classmethod
    Python内置函数(63)——property
    Python内置函数(62)——exec
    Python内置函数(61)——eval
    Js里头的对象字面量
    Js中的prototype的用法二
    Js中的prototype的用法一
    Mxgraph使用总结二
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10401098.html
Copyright © 2020-2023  润新知