java web 操作word文档_Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜。基于Java的解决方式也是非常多的,包含使用Jacob、Apache
POI、Java2Word、iText等各种方式,事实上在从Office 2003開始。就能够将Office文档转换成XML文件,这样仅仅要将须要填入的内容放上${}占位符,就能够使用像Freemarker这种模板引擎将出现占位符的地方替换成真实数据,这种方式较之其它的方案要更为简单。
以下举一个简单的样例。比方在Web页面中填写个人简历,然后点击保存下载到本地。效果图例如以下所看到的。
打开下载的Word文件
首先在Eclipse Java EE版中新建一个Dynamic Web Project,项目结构例如以下图所看到的
须要向项目中增加freemarker的JAR文件,能够通过以下的链接获得Freemarker的最新版本号:
模板文件resume.ftl是怎样生成的呢。事实上很easy,将须要的Word文档做好之后。选择另存为XML文件。另存之后建议用Editplus、Notepad++、Sublime等工具打开查看一下,由于有的时候你写的占位符可能会被拆开,这样Freemarker就无法处理了。
打开XML文件看看吧。假设刚才你写的${title}、${name}被xml文件给拆散了,改动一下XML文件就OK了。
改动过后另存为resume.ftl模板文件,例如以下所看到的:
接下来就是Servlet(也能够是Struts2的Action、Spring MVC的Controller等)和工具类WordGenerator的编写以及页面test.jsp的制作了,代码例如以下所看到的:
小服务的代码:
packagecom.lovo.servlet;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.Enumeration;
importjava.util.HashMap;
importjava.util.Map;
importjavax.servlet.ServletException;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.lovo.util.WordGenerator;
/**
* Servlet implementation class MyServlet
*/
@WebServlet("/saveDocServlet")
publicclassMyServletextendsHttpServlet {
privatestaticfinallongserialVersionUID = 1L;
@Override
protectedvoidservice(HttpServletRequest req, HttpServletResponse resp)
throwsServletException, IOException {
req.setCharacterEncoding("utf-8");
Map map = newHashMap();
Enumeration paramNames = req.getParameterNames();
// 通过循环将表单參数放入键值对映射中
while(paramNames.hasMoreElements()) {
String key = paramNames.nextElement();
String value = req.getParameter(key);
map.put(key, value);
}
// 提示:在调用工具类生成Word文档之前应当检查全部字段是否完整
// 否则Freemarker的模板殷勤在处理时可能会由于找不到值而报错 这里临时忽略这个步骤了
File file = null;
InputStream fin = null;
ServletOutputStream out = null;
try{
// 调用工具类WordGenerator的createDoc方法生成Word文档
file = WordGenerator.createDoc(map, "resume");
fin = newFileInputStream(file);
resp.setCharacterEncoding("utf-8");
resp.setContentType("application/msword");
// 设置浏览器下面载的方式处理该文件默认名为resume.doc
resp.addHeader("Content-Disposition","attachment;filename=resume.doc");
out = resp.getOutput
java web 操作word文档_Java Web项目中使用Freemarker生成Word文档相关推荐
- Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...
- Java项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...
- springboot中使用freemarker生成word文档并打包成zip下载(简历)
一.设计出的简历模板图以及给的简历小图标切图 二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件: 三.直 ...
- springboot中使用freemarker生成word循环输出图片(二维码)
1.先创建一个word文件(建议word2003,低版本兼容性好一点),在word中按照自己的需求做好文档. 2.另存为xml文件(建议与word一致即word2003xml),用可以查看xml文件的 ...
- 使用freemarker生成word文档(包含遍历多条数据、图片)
在做项目的过程中,有时候需要把数据生成word文档,常用的有POI.ITEXT等,在这篇文章中我们使用freemarker模板来生成我们想要的word文档. 首先我们需要使用office word来编 ...
- Java通过freemarker生成word文档
文档生成目录 摘要 项目预期效果 使用freemaker生成word文档并下载 一:导入所需要的maven依赖 二:根据word文档生成我们需要的ftl模板文件 三:将word需要的数据存入一个map ...
- Java项目中利用Freemarker模板引擎导出--生成Word文档
应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...
- Java使用freemarker生成word文档并转pdf文档
Java使用freemarker生成word文档后转pdf 先来看看效果图 进入正题 项目需求: 为订单后生成对应的pdf文档,文档内包含图片. 方案一:使用freemarker和itext把html ...
- Java通过POI或Freemarker生成word文档,使用Jfreechart创建统计图表
最近做了一个使用Java生成统计分析报告word文档的功能,有提前制作好的word文档,其中共包含了普通文本变量,普通表格,动态表格.统计图表(柱状图.饼状图.折线图等),在此记录下POI和freem ...
最新文章
- pcb matrix ipc lp viewer软件中SMN、SMM、SML三个库的区别
- 16、17、18_使用gridspec定义多子图,条形图(Bar plots),分组条形图,堆叠条形图(Stacked bar chart),饼图(Pie plots),甜甜圈图,嵌套饼图
- jsp整合mybatis案例
- [51 nod 123] 最大公约数之和 V3(杜教筛)
- yum只下载软件不安装的两种方法
- 接水问题(信息学奥赛一本通-T1233)
- 30 PP配置-生产车间控制-定义计划策略
- Sharepoint 弹出消息提示框
- 1228. Crashing Robots
- C语言课程设计——学生成绩信息管理系统
- 最强内存稳定性测试软件,内存稳定性测试软件Memtest正式版——HyperX FURY DDR4成绩喜人...
- Kube-OVN:大型银行技术团队推荐的金融级云原生网络方案
- sails框架条件查询
- git fetch - git merge - git pull 指令
- Cannot open url. please check this url is correct
- IntelliJ IDEA -2017.3.2(Ultimate Edition)的激活方式
- Android自带的人脸识别
- dirbuster暴力破解工具
- 搞笑python代码_ZAKER搞机团
- 文献下载神器 Sci-Hub 的最新地址