PageOffice实现最简单的Java导出Word中的数据
普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果。但是通过调用PageOffice开发平台,不仅可以在线打开并保存Word文件还可以提交Word中的数据。
下面我就简单的和大家分享一下如何实现Word文档的在线打开、编辑、保存和数据的提交。
第一步:拷贝文件到WEB项目的“WEB-INF/lib”目录下。拷贝PageOffice示例中下的“WEB-INF/lib”路径中的pageoffice.cab和pageoffice.jar到新建项目的“WEB-INF/lib”目录下。
第二步:修改WEB项目的配置文件。将如下代码添加到配置文件中:
<!-- PageOffice Begin -->
<servlet>
<servlet-name>poserver</servlet-name><servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/poserver.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/popdf.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/sealsetup.exe</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>adminseal</servlet-name>
<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/adminseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealp_w_picpath.do</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>mht</extension>
<mime-type>message/rfc822</mime-type>
</mime-mapping>
<context-param>
<param-name>adminseal-password</param-name>
<param-value>123456</param-value>
</context-param>
<!-- PageOffice End -->
第三步:添加引用。在WEB项目的WebRoot目录下添加动态页面Word.jsp。在该页面后台代码中
添加自定义标签库:“<%@ taglib uri="http://java.pageoffice.cn" prefix="po"%>”
引入PageOffice类库:“<%@page import=” com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*”%>”。
在HTML的<body>中添加PageOffice引用:
“<po:PageOfficeCtrlid="PageOfficeCtrl1"></po:PageOfficeCtrl>”,并设置控件所在层(<div></div>)的高和宽。
第四步:在要打开的Word文件中的相应位置手动插入书签(“PO_userName”、“PO_deptName”)。注意:书签名字不要重复、相邻书签之间至少要有一个字符,不然后一个书签会把前一个书签覆盖掉;书签的名字需以“PO_”为前缀。
第五步:Word.jsp页面编写代码,打开Word文档。部分代码如下:
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
//设置服务器页面
poCtrl.setServerPage("poserver.do");
WordDocument wordDoc = new WordDocument();
//打开数据区域,openDataRegion方法的参数代表Word文档中的书签名称
DataRegion dataRegion1 = wordDoc.openDataRegion("PO_userName");
//设置DataRegion的可编辑性
dataRegion1.setEditing(true);
//为DataRegion赋值,此处的值可在页面中打开Word文档后自己进行修改
dataRegion1.setValue("");
//设置字体颜色
dataRegion1.getFont().setColor(Color.RED);
DataRegion dataRegion2 = wordDoc.openDataRegion("PO_deptName");
dataRegion2.setEditing(true);
dataRegion2.setValue("");
dataRegion1.getFont().setColor(Color.RED);
poCtrl.setWriter(wordDoc);
//添加自定义按钮
poCtrl.addCustomToolButton("保存", "Save", 1);
//设置保存页面
poCtrl.setSaveDataPage("SaveData.jsp");
//打开Word文档
poCtrl.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张佚名");
poCtrl.setTagId("PageOfficeCtrl1");//此行必需
说明:若想提交数据需将webOpen()方法的第二个参数OpenModeType的类型设置为docSubmitForm提交类型
在HTML页面添加JS函数Save(),如下:
function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
如上所述,简单的就实现了Word文档的在线打开并提交的操作。接下来开始编写保存页面。
第六步:添加保存页面。在网站中添加动态页面SaveData.jsp,在后台页面中编写代码处理Word文档提交的数据,部分代码如下:
WordDocument doc = new WordDocument(request, response);
//获取提交的数值
DataRegion dataUserName = doc.openDataRegion("PO_userName");
DataRegion dataDeptName = doc.openDataRegion("PO_deptName");
doc.close();
至此,就简单的实现了Word文档的在线打开、编辑、保存和提交数据了。
方案总结:
上述的示例主要是借助了PageOffice开发平台的PageOfficeCtrl控件,利用该控件还可实现Excel文档内容的提交、添加手写批注、加盖电子印章、Word文档到PDF文档的转换等功能。另外,在PageOffice平台下还可实现Excel、PPT、PDF等文档的在线打开、编辑保存等等各种操作,很好地解决了开发OA系统的程序员的一大技术难题。
转载于:https://blog.51cto.com/6949400/1208597
PageOffice实现最简单的Java导出Word中的数据相关推荐
- java_导出_word_[转载]java导出word的5种方式
在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...
- java导出word的几种方式
目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...
- java导出word纸张方向_java导出word的几种方式
目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...
- 【Java用法】使用Java导出word文档的解决方案(适用于从服务器上下载到本地电脑)
本文目录 一.Controller 二.Service 接口类 三.ServiceImpl 实现类 四.Content-Type 类型与MIME Type类型对照表 最近在做一个word导出功能,需求 ...
- 【Java用法】使用Java导出word文档的解决方案(适用于Windows电脑)
目录 实现方式一.通过原生的POI 实现方式二.通过Hutool工具包 步骤1.添加pom依赖 步骤2.编写几行代码 步骤3.启动项目,大功告成 实现的效果 最近在做一个word导出功能,需求非常简单 ...
- JAVA导出Word文档工具EasyWord
介绍 基于Apache poi封装,在上层做了模型转换的封装,让使用者更加简单方便 只支持docx的导出,不支持doc 下面废话少说 让我们以最快的方式学会用java导出word文档 组件依赖 依赖 ...
- 目前java导出word的6种解决方案
文章转载自:http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. ...
- Java导出word 图片重复
Java导出word 需要的库 <dependency><groupId>org.freemarker</groupId><artifactId>fre ...
- java导出word文件损坏_记录一次POI导出word文件的细节问题
首先百科一下POI是什么: Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.通过字面意思,我们大概知 ...
最新文章
- 阿里产品专家:高情商的技术人,如何做沟通?
- ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等
- 0x30 java_终于找到了!有了它你就可以读懂字节码了!
- 最新CSS Hack汇总快查
- 1-9月欧洲新能源车份额上升 混动车注册量增加8.8%
- 基于JAVA+SpringMVC+Mybatis+MYSQL的培训中心管理系统
- RabbitMQ之路由键转发消息
- 学python可以做什么职业-Python可以做的5大功能和就职5大高薪职业
- Docker 全套笔记整理
- Modifying a Dynamic Library Without Changing the Source Code
- 图易服装PDM产品数据管理系统
- linux怎么查看hwaddr_linux下如何查看某个网卡当前使用的IP
- c++贪吃蛇源代码 完整版
- 网页设计成品DW静态网页Html5响应式css3——电影网站bootstrap制作(4页)
- 今天找压缩算法,看到一段陈年往事
- pytorch dataset自定义_PyTorch 系列 | 数据加载和预处理教程
- 关于树的一些学习心得
- java版地图源码_TreeMap就这么简单【源码剖析】
- Visual Studio 2005 Express Edition 正式版(英文版、中文版)
- 2015年5月产品设计学习与思考
热门文章
- 数据之路 Day5 - Python基础5
- 理解矩阵,矩阵背后的现实意义
- 梓益C语言学习笔记之指针
- DELL 控制卡做raid
- CoInitialize和CoInitializeEx
- Linux学习笔记——Ubuntu更新软件源
- VS2010 无法计算HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0@VCTargetPath处的属性表达式...
- php中 $$str 中 $$ 的解释
- 结构化查询语言(Structured Query Language)
- 笔试题:计算N的阶乘