普通的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平台下还可实现ExcelPPTPDF等文档的在线打开、编辑保存等等各种操作,很好地解决了开发OA系统的程序员的一大技术难题。

转载于:https://blog.51cto.com/6949400/1208597

PageOffice实现最简单的Java导出Word中的数据相关推荐

  1. java_导出_word_[转载]java导出word的5种方式

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...

  2. java导出word的几种方式

    目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...

  3. java导出word纸张方向_java导出word的几种方式

    目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...

  4. 【Java用法】使用Java导出word文档的解决方案(适用于从服务器上下载到本地电脑)

    本文目录 一.Controller 二.Service 接口类 三.ServiceImpl 实现类 四.Content-Type 类型与MIME Type类型对照表 最近在做一个word导出功能,需求 ...

  5. 【Java用法】使用Java导出word文档的解决方案(适用于Windows电脑)

    目录 实现方式一.通过原生的POI 实现方式二.通过Hutool工具包 步骤1.添加pom依赖 步骤2.编写几行代码 步骤3.启动项目,大功告成 实现的效果 最近在做一个word导出功能,需求非常简单 ...

  6. JAVA导出Word文档工具EasyWord

    介绍 基于Apache poi封装,在上层做了模型转换的封装,让使用者更加简单方便 只支持docx的导出,不支持doc 下面废话少说 让我们以最快的方式学会用java导出word文档 组件依赖 依赖 ...

  7. 目前java导出word的6种解决方案

    文章转载自:http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. ...

  8. Java导出word 图片重复

    Java导出word 需要的库 <dependency><groupId>org.freemarker</groupId><artifactId>fre ...

  9. java导出word文件损坏_记录一次POI导出word文件的细节问题

    首先百科一下POI是什么: Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.通过字面意思,我们大概知 ...

最新文章

  1. 阿里产品专家:高情商的技术人,如何做沟通?
  2. ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等
  3. 0x30 java_终于找到了!有了它你就可以读懂字节码了!
  4. 最新CSS Hack汇总快查
  5. 1-9月欧洲新能源车份额上升 混动车注册量增加8.8%
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的培训中心管理系统
  7. RabbitMQ之路由键转发消息
  8. 学python可以做什么职业-Python可以做的5大功能和就职5大高薪职业
  9. Docker 全套笔记整理
  10. Modifying a Dynamic Library Without Changing the Source Code
  11. 图易服装PDM产品数据管理系统
  12. linux怎么查看hwaddr_linux下如何查看某个网卡当前使用的IP
  13. c++贪吃蛇源代码 完整版
  14. 网页设计成品DW静态网页Html5响应式css3——电影网站bootstrap制作(4页)
  15. 今天找压缩算法,看到一段陈年往事
  16. pytorch dataset自定义_PyTorch 系列 | 数据加载和预处理教程
  17. 关于树的一些学习心得
  18. java版地图源码_TreeMap就这么简单【源码剖析】
  19. Visual Studio 2005 Express Edition 正式版(英文版、中文版)
  20. 2015年5月产品设计学习与思考

热门文章

  1. 数据之路 Day5 - Python基础5
  2. 理解矩阵,矩阵背后的现实意义
  3. 梓益C语言学习笔记之指针
  4. DELL 控制卡做raid
  5. CoInitialize和CoInitializeEx
  6. Linux学习笔记——Ubuntu更新软件源
  7. VS2010 无法计算HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0@VCTargetPath处的属性表达式...
  8. php中 $$str 中 $$ 的解释
  9. 结构化查询语言(Structured Query Language)
  10. 笔试题:计算N的阶乘