Java为word文档填充内容(查找替换带格式的字体)
前言:
我们都知道word中有一个查找替换功能,也就是将文档中相同的字符都替换成其他字符。那我们能不能实现用Java语言在线打开word文档的同时,将指定内容通过程序查找替换成我们想要的内容呢?这是可以的。
但是这需要开发者具备将activex控件集成到Java环境的能力。对于大部分Java开发工程师来说,仅仅解决单一的功能就要掌握activex控件,未免学习成本太大。
所以我们今天就要介绍一个中间件技术——pageoffice,此中间件技术已经将 在web系统操作office文档的大部分功能整合完毕,大家只需要关注自己web系统的业务逻辑即可,学习成本低,且功能很丰富。下面我们来实战用pageoffice实现一下用Java语言在线打开word文档的同时,将指定内容通过程序查找替换成我们想要的内容。
先看效果:
这里的部门、李四、日期信息均为后台代码通过查找替换功能实现的。
部署步骤(只需4步)
1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml
去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中
2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button
写a标签之前先引入pageoffice需要的js文件
<script type="text/javascript" src="/jquery.min.js"></script>
<script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>
然后添加a标签
<a href="javascript:POBrowser.openWindowModeless('DataTag.jsp' , 'width=1200px;height=800px;');">使用数据标签(DataTag)给Word文件填充带格式的数据</a>
3.在父页面同级目录下创建一个名为DataTag.jsp的文件
<%@ page language="java" import="java.util.*"
import="java.util.* ,java.awt.* ,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*,java.text.SimpleDateFormat,java.util.Date"
pageEncoding="utf-8"%>
<%
//PageOffice组件的使用
//设置服务器页面
PageOfficeCtrl pCtrl = new PageOfficeCtrl(request);
pCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
//定义WordDocument对象
WordDocument doc = new WordDocument();
//定义DataTag对象
DataTag deptTag = doc.openDataTag("{部门名}");
//给DataTag对象赋值
deptTag.setValue("B部门");
deptTag.getFont().setColor(Color.GREEN);
DataTag userTag = doc.openDataTag("{姓名}");
userTag.setValue("李四");
userTag.getFont().setColor(Color.GREEN);
DataTag dateTag = doc.openDataTag("【时间】");
dateTag.setValue(new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString());
dateTag.getFont().setColor(Color.BLUE);
pCtrl.setWriter(doc);
//打开Word文件
pCtrl.webOpen("test.doc", OpenModeType.docNormalEdit, "张佚名");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'DataTag.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%=pCtrl.getHtmlCode("PageOfficeCtrl1")%>
</body>
</html>
4.新建文件
新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的pCtrl.webOpen("test.doc", OpenModeType.docNormalEdit, "张佚名");代码改为pCtrl.webOpen("test.docx", OpenModeType.docNormalEdit, "张佚名");
将新建的test.doc文件随意编辑点内容放在DataTag.jsp同级目录下。同时向文档中添加步骤三中的特殊字符
{部门名} {姓名} 【时间】
然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写***Q37LN-W8NI-KFSQ-LEY3Y就可以打开文档.
注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下WordDataTag文件夹里面的代码.
刚开始接触pageoffice的话,也可以看视频快速上手http://www.zhuozhengsoft.com/Technical/
如有侵权,请联系博主