java 导出word简历_java导出生成word(类似简历导出)
1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。该方案只能在windows平台实现,是其局限性。
2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。
3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据 ,1.1版增强的功能: 指定文本样式,指定表格样式。如此,则可动态排版word文档。是一种不错的解决方案。
4:iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。功能强大。
5:JSP输出样式,该方案实现简单,但是处理样式有点缺陷,简单的导出可以使用。
6:用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。
综合以上资料的参考,和网上的一些意见,最后我选择了,第6种用xml做导出方案。
下面是基本的例子,以实现简单的word导出:
要导出的word模板的内容,启动拼音部分为要在代码种替换的部分。
:
然后将word另存为.xml文件,打开文件,找到title将其修改为${title},后面要替换的内容依次替换掉。然后将.xml文件后缀改为.ftl,导入.ftl模板文件到指定目录。加载jar包freemarker.jar。开始写代码:
主要代码:
public classWordTest {private Configuration configuration = null;publicWordTest(){
configuration= newConfiguration();
configuration.setDefaultEncoding("UTF-8");
}public static voidmain(String[] args) {
WordTest test= newWordTest();
test.createWord();
}public voidcreateWord(){
Map dataMap=new HashMap();
getData(dataMap);
configuration.setClassForTemplateLoading(this.getClass(), "");//模板文件所在路径
Template t=null;try{
t= configuration.getTemplate("测试.ftl"); //获取模板文件
} catch(IOException e) {
e.printStackTrace();
}
File outFile= new File("D:/outFile"+Math.random()*10000+".doc"); //导出文件
Writer out = null;try{
out= new BufferedWriter(new OutputStreamWriter(newFileOutputStream(outFile)));
}catch(FileNotFoundException e1) {
e1.printStackTrace();
}try{
t.process(dataMap, out);//将填充数据填入模板文件并输出到目标文件
} catch(TemplateException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}private void getData(MapdataMap) {
dataMap.put("title", "标题");
dataMap.put("nian", "2016");
dataMap.put("yue", "3");
dataMap.put("ri", "6");
dataMap.put("shenheren", "lc");
List> list = new ArrayList>();for (int i = 0; i < 10; i++) {
Map map = new HashMap();
map.put("xuehao", i);
map.put("neirong", "内容"+i);
list.add(map);
}
dataMap.put("list", list);
}
}
修改.ftl文件,找到列表所在位置,将其要加入的列表加入到文件中。在列表前加入(在它的头上加一个),并在结尾加上#list>。修改list内容,在要输出的名字前面加上l.。如xuehao,修改为l.xuehao。这样有点像EL表达式的使用。
参考帖子:
java 导出word简历_java导出生成word(类似简历导出)相关推荐
- java 调用word插件_java一键生成word操作,比poi简单
[Java] 纯文本查看 复制代码package com.jeeplus.modules.fact.util; import java.io.BufferedInputStream; import j ...
- Java中利用freemarker模板动态生成word含表格
最近公司有导出word的需求,由于word的样式有的很复杂所以记录一下Java中利用freemarker模板动态生成word含表格,以防以后忘记. 1.word表格的模板 删掉无用的数据留下基础的样式 ...
- Python-生成word、docs文件[生成word文档]
Python-生成word.docs文件[生成word文档] 方法一:写入新建文档 安装第三方库 实现代码 运行结果 注意 方法二:运用模板写入word文档 安装第三方库 创建模板或修改模板 实现代码 ...
- Java技术:SpringBoot集成FreeMarker生成word文件
今天给大家分享SpringBoot集成FreeMarker模板引擎生成word文件的用法,感兴趣的可以学一下,完整源码地址在文章末尾处,欢迎互相沟通交流! 一.什么是F ...
- java ajax 导出excel文件_springMVC(4)---生成excel文件并导出
springMVC(4)---生成excel文件并导出 在开发过程中,需要将数据库中的数据以excel表格的方式导出. 首先说明.我这里用的是Apache的POI项目,它是目前比较成熟的HSSF接口, ...
- java如何根据模板填充数据生成word文档
java根据模板填充数据生成word文档 这篇文章干什么? 思路总览 1.准备word模板 2.转换文件格式 3.编写代码 补充--下载流 这篇文章干什么? 使用代码将word模板内容进行替换,并 ...
- Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...
- Java使用FreeMarker模版技术动态生成word实践
一.序言 在日常开发中,常常有动态word文件生成的需求,通过编制模版,然后动态修改word内容以组合成新的文件.报告单.请假单.发票页等都可以使用动态生成word来解决. 笔者总结归纳出通用技术要点 ...
- POI利用word模板动态生成word报表以及动态生成word表格
目录 核心依赖 动态表格 测试类 工具类 动态数据 测试类 工具类 核心依赖 <dependency><groupId>org.apache.poi</groupId&g ...
- php 内容自动生成word文档,php生成word文档的例子
/** * 生成word文档 * * @param string $html 内容部分 * @param string $file 文件名称 * @param string $code 当前文件编码, ...
最新文章
- 独家|盘点5个TensorFlow和机器学习课程,程序员福利(附资源)
- opencv调试方法
- python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解
- python迭代器生成器使用技巧(1):遍历、代理、生成器创建迭代、反向迭代
- 决策树ID3 C4.5 CART代码
- 2019年末逆向复习系列之Boss直聘Cookie加密字段__zp_stoken__逆向分析
- Jzzhu and Chocolate(CF-449A)
- Java+jquery+jsonp实现跨域
- 应用安全-Web安全-越权漏洞整理
- 直线型一阶倒立摆1---概念篇
- Linux的百度云有限速吗,mac(linux)下配置aria2解决百度云限速问题
- c 语言鼠标钩子,线程钩子(鼠标钩子) | C/C++程序员之家
- 用LaTeX写毕业论文-UESTC
- 基于Java GUI的资产管理系统的设计与实现
- vs禁用函数安全检查
- 谷歌退出中国谁对谁错
- 小程序源码:AI微信小程序源码下载人脸照片AI转换动漫照片全新源码安装简单无需服务器域名-多玩法安装简单
- 项目中统一日志文件配置
- 使用matlab绘制弧线,MATLAB求解叶型中弧线
- 死磕 java线程系列之线程池深入解析——未来任务执行流程
热门文章
- springSessionDemo
- 移位密码算法-c语言,凯瑟移位密码(C语言).doc
- 一、二线城市 IT 公司大盘点!建议收藏
- 思科模拟器5506防火墙配置_租用电信线路,三地网络互联的配置——Cisco、Hillstone路由配置...
- 四阶段法——城市交通需求预测
- 高德地图全解析--定位篇
- 12个优秀的开源UML工具
- html通过拼音首字母定位,javascript实现通过拼音首字母快速选择下拉列表
- 美化复选框html,使用CSS3美化复选框checkbox
- 比特率和波特率的公式解析