做项目的过程中,经常需要把数据里里的数据读出来,经过加工,以word格式输出。 在网上找了很多解决方案都不太理想,偶尔发现了PageOffice,一个国产的Office插件,开发调用非常简单!比网上介绍的poi,jacob等解决方按容易上手多了!功能接口虽然没有poi,jacob那么多,但是满足了一般的需求的百分之八九十,而且不像poi那样还需要区分处理07格式和03格式那么麻烦。

下面是百度百科PageOffice的介绍:

  https://baike.baidu.com/item/PageOffice/2737741?fr=aladdin

PageOffice的基本功能包括:

  在web网页里打开、编辑、打印预览、打印Word、Excel、PowerPoint等Office文档。
  文档并发控制机制。
  提供Word修订痕迹、手写批注、圈阅划线、键盘批注、电子印章等OA公文模块的必备功能。
  根据数据库动态将数据,包括文本、图片、表格等填充、导出到Word、Excel模板中指定的位置处,并且可以动态指定内容的各种格式。
  提取Word、Excel文档中指定位置处的内容,包括文本、图片(Excel暂不支持)、表格等,保存到数据库。
  其他功能就不细说了......

更多的接口说明参考PageOffice官网API:http://www.zhuozhengsoft.com/help/java3/index.html

下载地址:http://www.zhuozhengsoft.com/dowm/

下载PageOffice开发包之后,拷贝 Samples4 文件夹到 Tomcat 的 Webapps 目录下,访问:http://localhost:8080/Samples4/index.html 就会看到所有官方示例效果的列表,重点参考以下几个示例:  

  一、11、给Word文档中的数据区域(DataRegion)赋值的简单示例
  一、17、给Word文档中Table赋值的简单示例
  一、18、使用数据标签(DataTag)给Word文件填充文本数据
  二、6、后台编程插入Word文件到数据区域
  二、7、后台编程插入图片到数据区域
  二、8、后台编程插入Excel文件到数据区域
  二、9、给Word文档添加水印
  二、10、使用数据标签(DataTag)给Word文件填充带格式的数据
  二、11、在Word中动态创建数据区域

我们可以写一个简单的程序测试一下效果:

    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); WordDocument worddoc = new WordDocument();
//先在要插入word文件的位置手动插入书签,书签必须以“PO_”为前缀
//给DataRegion赋值,值的形式为:"纯文本内容、[word]word文件路径[/word]、[image]图片路径[/image]"
DataRegion data1 = worddoc.openDataRegion("PO_p1");
data1.setValue("测试字符串");//纯文本内容
DataRegion data2 = worddoc.openDataRegion("PO_p2");
data2.setValue("[word]doc/2.doc[/word]");//插入word文件
DataRegion data3 = worddoc.openDataRegion("PO_p3");
data3.setValue("[image]doc/1.jpg[/image]");//插入图片 //打开文件、填充数据
poCtrl1.setWriter(worddoc);
poCtrl1.webOpen("doc/template.doc", OpenModeType.docNormalEdit, "用户名");

  代码很简单。短短几句就完成插入文字,图片,子Word文件的功能!不过做项目的话,可以先定义好一个word模板,这样有利于排版,减少编写代码的工作量,也可以调用PageOffice提供的接口控制模板中数据区域的样式,但是编码工作量就增加了。其功能还远不止这些,根据具体需求具体处理吧。

[原创]java读写word文档,完美解决方案的更多相关文章

  1. [转载]java读写word文档,完美解决方案

    做项目的过程中,经常需要把数据里里的数据读出来,经过加工,以word格式输出. 在网上找了很多解决方案都不太理想,偶尔发现了PageOffice,一个国产的Office插件,开发调用非常简单!比网上介 ...

  2. [原创]java获取word文档的条目化内容

    在开发Web办公系统或文档系统时,PageOffice组件是众所周知的在线处理微软word/ppt/excel文档的强大工具,它对WORD文档的各种处理在API层面进行了封装,屏蔽了Office VB ...

  3. [原创]Java生成Word文档

    在开发文档系统或办公系统的过程中,有时候我们需要导出word文档.在网上发现了一个用PageOffice生成word文件的功能,就将这块拿出来和大家分享. 生成word文件与我们编辑word文档本质上 ...

  4. [原创]java对word文档的在线打开

    一.材料准备 百度一下:PageOffice,从官网下载PageOffice for Java.压缩包文件: 二. 实现步骤: 1. 打开“集成文件”目录,拷贝“WEB-INF\lib”目录中的pag ...

  5. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  6. Java生成 Word文档的并打印解决方案

    户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...

  7. poi读写word模板 / java生成word文档

    有一word文档表格 形如: 姓名 ${name} 电话 ${tel} 从数据库读取记录替换上述变量 import java.io.FileOutputStream; import java.util ...

  8. Java解析word文档

    背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何解析word文档. 因为系统如果无法智能的解析word,那么就只能通过其他方式手动录入word内容,效率低下,而且人工成本和录入出错率 ...

  9. Java 处理word文档后在前端展示

    最新新开发的这个项目需要使用word文档并要求能在前端页面上带格式展示,由于项目不是内部使用,所以不考虑插件类的处理模式,都必须要本地处理完成,前端不需要做什么更新或者说安装就能直接访问,类似于百度文 ...

随机推荐

  1. Python 和 Flask实现RESTful services

    使用Flask建立web services超级简单. 当然,也有很多Flask extensions可以帮助建立RESTful services,但是这个例实在太简单了,不需要使用任何扩展. 这个we ...

  2. php基础语句 变量 符号

    中心主题 标记与注释 // /* */ 输出语句 echo输出 echo可以输出多个字符串,逗号隔开 print输出 print只能输出一个字符串,返回true或false print_r() 可以把 ...

  3. Oracle 释放过度使用的Undo表空间

    故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃: 问题分析:产生问题的原因主要以下两点: 1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况: ...

  4. Java设计模式之(工厂模式)

    工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...

  5. 移动web页面字体大小三

    <script type="text/javascript"> (function (doc, win) { var docEl = doc.documentEleme ...

  6. React学习及实例开发(一)——开始

    本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.构建一个新项目 1.命令行运行如下命令,构建一个新的react项目 npm install -g crea ...

  7. 一致性哈希算法-----> 解决memecache 服务器扩容后的数据丢失。

    1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 ...

  8. 洛谷—— P1186 玛丽卡

    https://www.luogu.org/problem/show?pid=1186 题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长 ...

  9. JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦

    如今导出excel基本上都是用poi了,当报表格式非常负责的时候 开发难度会加大 假设报表有格式有变化 那就更复杂了,先发现一个非常老的技术.能够解决格式复杂的报表. 实例代码例如以下: <%@ ...

  10. Failed to load session “ubuntu" 问题解决总结

    最近在用Ubuntu系统,但因为手欠,将unity-2d给删除了,导致总是进不了图形界面,登陆之后显示failed to load session "ubuntu“,返回之后又回到登录界面. ...