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文档相关推荐

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

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

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

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

  3. springboot中使用freemarker生成word文档并打包成zip下载(简历)

    一.设计出的简历模板图以及给的简历小图标切图         二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件:    三.直 ...

  4. springboot中使用freemarker生成word循环输出图片(二维码)

    1.先创建一个word文件(建议word2003,低版本兼容性好一点),在word中按照自己的需求做好文档. 2.另存为xml文件(建议与word一致即word2003xml),用可以查看xml文件的 ...

  5. 使用freemarker生成word文档(包含遍历多条数据、图片)

    在做项目的过程中,有时候需要把数据生成word文档,常用的有POI.ITEXT等,在这篇文章中我们使用freemarker模板来生成我们想要的word文档. 首先我们需要使用office word来编 ...

  6. Java通过freemarker生成word文档

    文档生成目录 摘要 项目预期效果 使用freemaker生成word文档并下载 一:导入所需要的maven依赖 二:根据word文档生成我们需要的ftl模板文件 三:将word需要的数据存入一个map ...

  7. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  8. Java使用freemarker生成word文档并转pdf文档

    Java使用freemarker生成word文档后转pdf 先来看看效果图 进入正题 项目需求: 为订单后生成对应的pdf文档,文档内包含图片. 方案一:使用freemarker和itext把html ...

  9. Java通过POI或Freemarker生成word文档,使用Jfreechart创建统计图表

    最近做了一个使用Java生成统计分析报告word文档的功能,有提前制作好的word文档,其中共包含了普通文本变量,普通表格,动态表格.统计图表(柱状图.饼状图.折线图等),在此记录下POI和freem ...

最新文章

  1. pcb matrix ipc lp viewer软件中SMN、SMM、SML三个库的区别
  2. 16、17、18_使用gridspec定义多子图,条形图(Bar plots),分组条形图,堆叠条形图(Stacked bar chart),饼图(Pie plots),甜甜圈图,嵌套饼图
  3. jsp整合mybatis案例
  4. [51 nod 123] 最大公约数之和 V3(杜教筛)
  5. yum只下载软件不安装的两种方法
  6. 接水问题(信息学奥赛一本通-T1233)
  7. 30 PP配置-生产车间控制-定义计划策略
  8. Sharepoint 弹出消息提示框
  9. 1228. Crashing Robots
  10. C语言课程设计——学生成绩信息管理系统
  11. 最强内存稳定性测试软件,内存稳定性测试软件Memtest正式版——HyperX FURY DDR4成绩喜人...
  12. Kube-OVN:大型银行技术团队推荐的金融级云原生网络方案
  13. sails框架条件查询
  14. git fetch - git merge - git pull 指令
  15. Cannot open url. please check this url is correct
  16. IntelliJ IDEA -2017.3.2(Ultimate Edition)的激活方式
  17. Android自带的人脸识别
  18. dirbuster暴力破解工具
  19. 搞笑python代码_ZAKER搞机团
  20. 文献下载神器 Sci-Hub 的最新地址

热门文章

  1. Eigen欧拉变换演示
  2. 大家好!我是屁孩君儿子,今天给大家带来一个 1085 球弹跳高度的计算
  3. 易观推出免费版本方舟Argo,同时开源SDK及调度
  4. 防泄密软件可以管理电脑的使用,还能防止数据泄漏...
  5. SQL之exists的使用
  6. Hello Playwright:(7)模拟键盘和鼠标
  7. Keil scatter分散加载
  8. zynq-linux 配置WN821(RTL8192)
  9. photoshop cs6 for mac 破解方法
  10. 医用电子体温计开发方案