package com.havenliu.document;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class DocumentHandler {
private Configuration configuration = null;
public DocumentHandler() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
}
public void createDoc() {
//要填入模本的数据文件
Map dataMap=new HashMap();
getData(dataMap);
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法.可以重servlet,classpath,数据库装载,
//这里我们的模板是放在com.havenliu.document.template包下面
configuration.setClassForTemplateLoading(this.getClass(), "/com/havenliu/document/template");
Template t=null;
try {
//test.ftl为要装载的模板
t = configuration.getTemplate("test.ftl");
} catch (IOException e) {
e.printStackTrace();
}
//输出文档路径及名称
File outFile = new File("D:/temp/outFile.doc");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
t.process(dataMap, out);
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 注意dataMap里存放的数据Key值要与模板中的参数相对应
* @param dataMap
*/
private void getData(Map dataMap)
{
dataMap.put("author", "张三");
dataMap.put("remark", "这是测试备注信息");
List
_table1=new ArrayList();
Table1 t1=new Table1();
t1.setDate("2010-10-1");
t1.setText("制定10月开发计划内容.");
_table1.add(t1);
Table1 t2=new Table1();
t2.setDate("2010-10-2");
t2.setText("开会讨论开发计划");
_table1.add(t2);
dataMap.put("table1", _table1);
List
_table2=new ArrayList();
for(int i=0;i<5;i )
{
Table2 _t2=new Table2();
_t2.setDetail("测试开发计划" i);
_t2.setPerson("张三——" i);
_t2.setBegindate("2010-10-1");
_t2.setFinishdate("2010-10-31");
_t2.setRemark("备注信息");
_table2.add(_t2);
}
dataMap.put("table2", _table2);
}
}
分享到:
相关推荐
在Java开发中,生成Word文档是一项常见的需求,例如在报告生成、数据导出或合同制作等场景。...实际应用中,根据项目特性和需求选择合适的库,并灵活运用其提供的功能,就能实现Java生成Word文档的“完美解决方案”。
这个“JAVA生成WORD工具类”提供了一种解决方案,使得开发者可以通过代码动态地生成Word文档,避免手动操作的繁琐和错误。下面将详细介绍这个工具类的工作原理和可能的应用场景。 首先,Java生成Word文档通常涉及到...
Java生成Word模板是一种常见的技术,尤其在企业级应用中,用于自动生成报告、合同或任何需要格式化的文本文档。这个技术通常涉及到Java的IO流处理、模板引擎以及可能的库如Apache POI或OpenOffice API。 Apache POI...
Java 生成word文件,带样式,带页眉,带页码,带图片,带表格,需要相关iText包,包可在http://download.csdn.net/detail/wuxinxing1981/8055977 链接下载。
首先,Java生成Word文件,最常用的库是Apache POI。Apache POI是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint。对于Word文档,Apache POI提供了HWPF(Horrible Word ...
Java 生成 Word 文档-模板示例 Java 生成 Word 文档-模板示例是 Java 开发语言中的一种常见应用场景,通过使用 Java 语言,可以生成 Word 文档,以满足业务需求。下面是该示例中涉及到的知识点: 1. Java 模板引擎...
Java生成Word是编程中常见的需求,特别是在数据报告、文档生成或者网页内容导出等场景。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI和docx4j。Apache POI是一个广泛使用的开源项目,它允许开发者...
在Java编程环境中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报告生成、数据导出等场景。Freemarker是一个强大的模板引擎,它能够帮助我们方便地生成各种格式的文档,包括Word。本篇文章将详细介绍...
总的来说,RtfTemplate是一个强大的工具,它简化了Java生成Word文档的过程,使得开发者可以专注于数据处理和文档内容,而不是底层的文件操作。通过熟练掌握RtfTemplate的使用,可以大大提高开发效率,提升项目的质量...
Java生成Word文档是一种常见的需求,特别是在企业级应用中,例如报告生成、数据导出等。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI,它是一个开源项目,提供了API来处理Microsoft Office格式的...
Java生成Word文档是常见的需求,尤其在自动化报告、数据导出或者系统集成中。iText是一个流行的开源Java库,用于创建和修改PDF和RTF文件。在这个压缩包中,我们有iText 2.7.1,iText rtf 2.7.1以及iTextAsian,这些...
在Java编程环境中,生成Word文档并导入图片是一项常见的任务,特别是在数据报告、自动化测试报告或者文档自动生成等场景。本文将详细讲解如何使用Java来实现这个功能,以及如何做到不受模板限制,通过代码生成简洁...
java使用itext生成word文件带样式可自己调整样式 背景 格式
以上就是使用Java生成Word文档的基本步骤和关键知识点。实际应用中,你可以根据需求扩展这些基本元素,构建更复杂的Word文档结构。在处理大量数据或复杂格式时,理解并熟练运用Apache POI库至关重要。
在Java编程环境中,生成...以上就是使用Java生成Word文档的关键知识点。在实际开发中,你可能还需要结合MVC框架、数据库操作等进行更复杂的集成。通过掌握这些技术,你可以构建强大的文档生成系统,满足各种业务需求。
在IT领域,特别是软件开发行业中,使用Java生成Word文档是一种常见的需求,特别是在自动化报告生成、文档模板填充等场景中。本文将深入探讨如何利用Java语言和相关库来实现这一功能,重点介绍Apache POI和一个相对...
java中生成word文件,生成固定文件模板的word文件 封装成工具类,可以更方便的实现需求