• Java导出freemarker实现下载word文档格式功能


    首先呢,先说一下制作freemarker模板步骤,

    1. 在WPS上写出所要的下载的word格式当做模板

    2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注

    3. 把固定模板另存为htm或者html格式

    4. 用文本编辑器(例:EditPlus,HBuilder等工具)打开模板,并将标注内容替换成 ${要获取的字段} 这种格式,类似于传参数,可以传多个参数

    5. 将修改后的模板保存,并将后缀名改为ftl格式。至此  我们的freemarker模板就大功告成了

        PS:   最好将建好的模板放到文件夹内,方便统一管理。

                  如果是web项目,模板之类的最好放在/WEB-INF/下,不是web项目的话最好放在classpath下。

    其次,就是将制作好的模板导入到项目里的步骤了

    1. 第一步肯定是把制作好的模板放到指定的路径并且导入freemarker的jar包,这个是毋庸置疑的吧

    2. 我们需要在Spring配置文件内加上以下这么一段代码

     <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
               <property name="templateLoaderPath" value="/WEB-INF/config/template/" />      <!--  这里的value就填写我们的模板加载路径  -->
               <property name="freemarkerSettings">                                          <!--  配置freemarker环境属性  -->
                     <props>
                           <prop key="template_update_delay">0</prop>                        <!-- 刷新模板的周期,单位为秒 -->
                           <prop key="default_encoding">GBK</prop>                           <!--  设置默认编码格式  -->
                           <prop key="locale">zh_CN</prop>                                   <!--  设置语言环境信息-->
                      </props>
               </property>
     </bean>

    3. 接下来我们就要编写我们的下载模板类啦(在这里我采用了数据库加载模式加载我们的Freemarker模板文件)

      如上图所示  我们的调用模板也就写好啦,接下来的就是方法的调用和添加参数问题了

    4. 方法的调用和添加参数

        添加参数:

     private void getData(Map<String, Object> dataMap) {
    
                String param1 = " 参数一 ";
                String param2 = " 参数二 ";
                ...  参数有几个就创建几个
     
                dataMap.put("param1", param1);
                dataMap.put("param2", param2);
                ...  参数有几个就添加几个
    
                List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
                for (int i = 0; i < list.size(); i++) {
                     Map<String,Object> map = new HashMap<String,Object>();
                        map.put("number", i);                     
                        map.put("content", "内容"+i);
                     list.add(map);
                dataMap.put("list", list);
                }
    
        }

         方法调用:

      public void downLoad(Map<String, Object> dataMap)throws Exception {
    
            getData(dataMap);
            String templateName = "pinggu.ftl";                                                                                              //   模板文件名
            String filePath = "D:/downLoad";                                                                                                 //    输出文档路径
            String fileName = "评估意见.docx";                                                                                                //    输出文件名称
            String modelPath = request.getSession().getServletContext().getRealPath("/") + "WEB-INF/template/ftl/";                          //    模板文件路径
           
            CancerUtil.createDoc(dataMap,fileName,templateName,filePath,modelPath);
        }

    至此  我们的实现下载word文档格式功能就完成了  下一章呢,我想写一下我对加载freemarker模板路径三个方法的理解和认识,希望大家指出我的错误

  • 相关阅读:
    Notes相关开发Tips
    gridView滚动条相关问题
    MyBatis学习(一)简单入门程序
    springMVC入门
    zoj 3702 Gibonacci number 找规律
    邻接表表示
    poj 1269 直线相交情况
    poj 3304 Segments 线段与直线相交的判断
    poj 1654 多边形面积
    zoj 3696 Alien's Organ 概率,泊松分布
  • 原文地址:https://www.cnblogs.com/JealousGirl/p/createDoc.html
Copyright © 2020-2023  润新知