1.下载freemarker-2.3.19.jar

2.把要填充的内容用  ${title},${no}代替

3.用word 打开,保存为2003xml

4.打开生成xml文件,看下有没有把表达式  ${title},${no}   分开,如果分开了,那么要合并,最后保存为ftl文件

5.代码

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("生成成功");
}
}

java freemark生成word文档的更多相关文章

  1. [转载]Java动态生成word文档(图文并茂)

    很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...

  2. [原创]Java动态生成word文档(图文并茂)

    很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...

  3. velocity模板技术生成word文档

    本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...

  4. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  5. FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个方案只能在java中运行,无法在Android项目中运行.所以此方案是:APP将表单数据发送给后台,后台通过freemarker ...

  6. Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...

  7. java使用freemarker 生成word文档

      java 生成word文档     最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的 ...

  8. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  9. Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...

随机推荐

  1. 用正则匹配一串字符串中的ip地址

    IP地址有4段组成,每一段数字的范围为0-255,在一段文本中提取ip地址可以这样 $src = 'src = alsdlk ks sdf2.3.3.4 234.193.1.120.1232 d.23 ...

  2. javaScript操作select

    注意:Option中的O是要大写的,不然语法报错 1.动态创建select       function createSelect(){ var mySelect = document.createE ...

  3. JQuery让input从disabled变成enabled

    JQuery让input从disabled变成enabled document.getElementByIdx_x("removeButton").disabled = false ...

  4. <转>ASP.NET学习笔记之理解MVC底层运行机制

    ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制 今天,我将开启一个崭新的话题:ASP.NET MVC框架的探讨.首先,我们回顾一下ASP.NET Web Form技术与ASP.NET ...

  5. switch_case,&&,||,条件操作符和逗号操作符,循环语句

    一.switch-case switch-case语句主要用在多分支条件的环境中,在这种环境中使用if语句会存在烦琐且效率不高的弊端. switch(expression) { case const ...

  6. MySql按指定天数进行分组数据统计分析 2

    上次的随笔1中写的分组方式,经分析,是从前往后进行分组,即若选择2014的数据进行统计每11天为一组的话,1的分组方式, 按照2014-01-01——2014-01-11为一组,之后每11天为一组. ...

  7. linux杂记(七)linux档案与目录管理指令

    1.目录的相关操作:cd,pwd,mkdir,rmdir 路径(PATH): 绝对路径:路径的写法[一定由根目录/写起],例如/usr/share/doc这个目录 相对路径:路径的写法[不是由/写起] ...

  8. C#学习日志 day 3 ------ 基本语句示例

    写c#首先需要知道的就是数据类型,这里是所有c#中的所有数据类型以及说明.

  9. Howie带你云上飘-新浪云

    介绍一下怎么在sae上做个网站 前言 曾经,sae是收费的,计时收费,还挺贵的呢.所以就试玩了一下,没敢继续鼓捣.后来,云计算越来越火了,新浪也不差钱嘛,于是直接给新注册的开发者送好多豆子,于是,免费 ...

  10. 批量添加target属性

    <script> addTarget(); function addTarget(){ var oa=document.getElementsByTagName('a'); for(var ...