java freemark生成word文档
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文档的更多相关文章
- [转载]Java动态生成word文档(图文并茂)
很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...
- [原创]Java动态生成word文档(图文并茂)
很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功 ...
- velocity模板技术生成word文档
本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个方案只能在java中运行,无法在Android项目中运行.所以此方案是:APP将表单数据发送给后台,后台通过freemarker ...
- Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...
- java使用freemarker 生成word文档
java 生成word文档 最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的 ...
- 使用Java生成word文档(附源码)
当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...
- Java 导出数据库表信息生成Word文档
一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...
随机推荐
- Gallery平滑移动
看了些网上的方法弄了下平滑移动的效果,虽说最后是实现了,实现后发现也不是我想要的效果,对于我幸苦写过的代码先存放在这上面了 package com.layout; import android.con ...
- Socks5协议中文文档
译者:Radeon(Radeon bise@cmmail.com) 译文公布时间:2001-6-18 文件夹 1.介绍 2.现有的协议 3.基于TCP协议的客户 4.请求 5.地址 6.应答 7.基于 ...
- iOS_词典阵列 按key分组和排序
// // main.m // SortGroup // // Created by beyond on 14-10-26. // Copyright (c) 2014年 beyond.com All ...
- c#高级语言编程(第一部分)
1.一步一步学c#(一):.NET体系结构 2.一步一步学c#(二):核心c# 3.一步一步学c#(三):对象和类型 4.一步一步学c#(四):继承 5.一步一步学c#(五):泛型 6.一步一步学c# ...
- Hive操作之HQL语句
HQL操作1.Distribute by distribute by col按照col列把数据分散到不同的reduce sort sort by col 按照col列把数据排序 ...
- Android 汉字转拼音之工具篇
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- C iOcp
#include <winsock2.h> //#include <windows.h> #include <stdio.h> #define PORT 5150 ...
- ETL工具之ODI
ETL工具之ODI 到目前为止,Oracle的ETL工具包括两种,分别是Oracle Warehouse Builder(OWB)和Oracle Data Integrator(ODI ...
- JAVA泛型-擦除
package com.xt.thinks15_7; import java.util.Arrays; class EraseObject1<A> { } class EraseObjec ...
- jquery 工作笔记,不断整理中..
$('input:radio[name="ruleType"]:checked').val() //获得radio选中的值 $("input[name='Q_lastU ...