前言:
在word文件中,虽然也有表格。但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中。
本地的word插入Excel操作很简单,就是直接插入—对象—选择相应的Excel文件即可。
那么想要在线打开word文档的同时,将指定的Excel文档插入到指定的word文档的指定位置中,要怎么办呢?这需要开发者具备将activex控件集成到Java环境的能力。对于大部分Java开发工程师来说,仅仅解决单一的功能就要掌握activex控件,未免学习成本太大。
所以我们今天就要介绍一个中间件技术——pageoffice,此中间件技术已经将 在web系统操作office文档的大部分功能整合完毕,大家只需要关注自己web系统的业务逻辑即可,学习成本低,且功能很丰富。下面我们来实战用pageoffice实现一下在word中插入Excel对象的功能。
先看效果:
文档里面的Excel表格就是通过pageoffice插入到word文档里的Excel对象。
部署步骤(只需5步)
去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中
2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button
写a标签之前先引入pageoffice需要的js文件
然后添加a标签
后台编程插入Excel文件到数据区域
3.在父页面同级目录下创建一个名为Word.jsp的文件
import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
pageEncoding="utf-8"%>
//******************************卓正PageOffice组件的使用*******************************
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
WordDocument worddoc = new WordDocument();
//先在要插入word文件的位置手动插入书签,书签必须以“PO_”为前缀
//给DataRegion赋值,值的形式为:"[word]word文件路径[/word]、[excel]excel文件路径[/excel]、[image]图片路径[/image]"
DataRegion data1 = worddoc.openDataRegion("PO_p1");
data1.setValue("[excel]1.xls[/excel]");
poCtrl1.setWriter(worddoc);
poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");
%>
后台编程插入excel文件到数据区域(企业版)
4.新建文件
新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的poCtrl1.webOpen("test.doc", OpenModeType.docNormalEdit, "张三");代码改为poCtrl1.webOpen("test.docx", OpenModeType.docNormalEdit, "张三");
新建一个名为1.xls的Excel文件(如果新建的是xlsx文件就将第三步中的data1.setValue("[excel]1.xls[/excel]");代码改为data1.setValue("[excel]1.xlsx[/excel]");)
可以在1.xls文件中填写一些数据以供测试。
将新建的两个文件放在word.jsp同级目录下。
5.添加书签
打开项目中刚才放置进去的test.doc文件,在想要插入Excel文档对象的位置添加一个书签,名称必须PO_开头,比如我们设置为PO_p1
如果我们添加的书签名是PO_p2 那就将第三步中的代码 DataRegion data1 = worddoc.openDataRegion("PO_p1");改为DataRegion data1 = worddoc.openDataRegion("PO_p2");
然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册Q37LN-W8NI-KFSQ-LEY3Y就可以打开文档.
注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下WordResExcel文件夹里面的代码.