做项目的过程中,经常需要把数据里里的数据读出来,经过加工,以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文档,完美解决方案

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

[转载]java获取word文档的条目化内容

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

[转载]Java生成Word文档

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

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

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

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

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

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

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

Java解析word文档

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

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

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

整理关于Java进行word文档的数据动态数据填充

首先我们看下,别人整理的关于Java生成doc 的 资料. java生成word的几种方案 1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用 ...

随机推荐

ps -C

[root@Nginx_BackUP keepalived]# ps -C nginx PID TTY TIME CMD 3965 ? 00:00:00 nginx 3966 ? 00:00:00 n ...

实验一补充内容 Java开发环境的熟悉-刘蔚然

本次实验 PSP时间统计 步骤 耗时百分比 需求分析 5% 设计 10% 代码实现 67% 测试 15% 分析总结 3%

Hungary(匈牙利算法)——二分图最大匹配

在复习匈牙利算法的时候,发现这么一篇介绍匈牙利算法的文章,非常通俗易懂,所以就借鉴过来了. 复杂度:邻接矩阵:O(v^3)邻接表:O(V*E) 附上链接:趣写算法系列之--匈牙利算法 下面就附上代码吧 ...

[博弈]ZOJ3591 Nim

题意: 给了一串数,个数不超过$10^5$,这串数是通过题目给的一段代码来生成的 int g = S; ; i

border-radius讲解1

如今CSS3中的border-radius出现后,让我们没有那么多的烦恼了,首先制作圆角图片的时间是省了,而且其还有多个优点:其一减少网站的维护的工作量,少了对图片的更新制作,代码的替换等等;其二.提 ...

TD缺陷通过excel导入QC11.0缺陷库

在将TD升级到QC之前,参考了各种升级的方式,但是最终发现用excel导入缺陷到QC库是最简单方便的方法,实施步骤如下:1,首先登陆TD,将缺陷的所有信息显示在界面,然后使用缺陷工具将页面所有缺陷保存 ...

核心动画 CAAnimation 进阶

转载自:http://www.cofcool.net/development/2015/06/20/ios-study-note-nine-CoreAnimation/ Core Animation, ...

ServletRegistrationBean的源码摘要

感觉ServletRegistrationBean在Springboot中是一个可以看懂的类,好像作用就相当于@Controoller注解, package org.springframework.b ...

【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

[转帖]Linux内核为大规模支持100Gb/s网卡准备好了吗?并没有

Linux内核为大规模支持100Gb/s网卡准备好了吗?并没有 之前用 千兆的机器 下载速度 一般只能到 50MB 左右 没法更高 万兆的话 可能也就是 200MB左右的速度 很难更高 不知道后续的服 ...

java word文档_[转载]java读写word文档,完美解决方案相关推荐

  1. java word模版填充_[转载]java向word模板中填充数据(总结)

    使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区 ...

  2. java数组可扩展_[转载]Java数组扩容算法及Java对它的应用

    Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的. 2)利用数组复制方法可以变通的实现数组扩容. 3)System.arraycopy()可以复制数组. 4)Arr ...

  3. java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

  4. java生成sm2证书_(转载)Java使用IText实现PDF签章

    前文讲到了如何使用Adobe的PDF工具软件进行电子印章应用.在实际应用中还有一种情形就是需要将电子印章功能集成在我们开发的系统里,这里就要用到一些PDF的二次开发库了.做过相关开发的同学应该知道常用 ...

  5. java对象工厂池_[转载]Java对象池技术的原理及其实现

    作者:汪永好 出处:计算机与信息技术 责任编辑: 方舟 [ 2006-11-25 07:00 ] 摘 要 :本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式.还指出了使用对象池技术 ...

  6. java throw 什么意思_[转载]java中throw和throws的区别

    throw是一种控制程序流程的特殊方法而已.没有相应的catch的话,可以中止当前的方法继续执行. 关键字:throws 声明方法时候,如果不声明throws的话,那么一般的Exception都要在这 ...

  7. java 从控制台读取_转载 java从控制台读取输入的方法

    import java.io.BufferedReader;   import java.io.IOException;   import java.io.InputStreamReader;   i ...

  8. java dijkstra算法代码_[转载]Java实现dijkstra算法: 地图中任意起点寻找最佳路径...

    最近在复习java,下学期要用,写这个练手.  技术较粗糙,见谅. 代码里用的是这幅地图,根据实际情况更改,在addNode方法中 这个是运行结果,起点和终点在 运行wrap(String qidia ...

  9. java四叶玫瑰_[转载]java编程——四叶玫瑰线

    package edu.hit.hd.zyl; import java.awt.*; import java.awt.event.*; import javax.swing.*; public cla ...

  10. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

最新文章

  1. ASP.NET 弹出窗口
  2. java交易系统_基于SSM框架的JAVA二手交易系统
  3. JavaScript Table排序
  4. W10关闭不必要的服务
  5. Django操作与内容
  6. JS 判断手机操作系统代码
  7. django 403 错误:CSRF token missing or incorrect
  8. 多线程导出excel高并发_怎么理解分布式、高并发、多线程
  9. (android实战)第三方应用反编译并修改UI信息后,重新编译
  10. .$nextTick 延迟回调
  11. 技术支持在大数据分析中的作用
  12. 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
  13. 如何对一个水杯进行测试?(详细)
  14. 2022年自考专业(工商企业管理)生产与作业管理练习题
  15. 风靡全球25年的重磅IP,新作沦为脚本乐园
  16. Substrate区块链框架学习小组
  17. 360浏览器怎么导入html,如何将360浏览器收藏网页导入到火狐浏览器中
  18. 创新研发高通量芯片技术,JASMINER实现区块链芯片大突破
  19. 激光切割机软件开发如何补充参数
  20. 处理vcf文本设计多态性indel标记--GATK、vcf

热门文章

  1. 臭名昭著的Java”
  2. 管程(Moniter) 并发编程的基本心法
  3. nodejs q模块
  4. kali 安装volatility_linux网络命令 【Volatility】取证实战
  5. 65883-12-7,PEG5-Ms带有甲磺酸基和羟基的PEG连接剂
  6. RocketMQ源码分析(十五)之文件恢复
  7. 添加了排比句的狗屁不通生成器
  8. Allegro_SMT手工焊接辅助程序
  9. 2022暑期牛客多校训练第5场 A.Don‘t Starve
  10. 中山技术学院计算机学院,计算机科学与技术学院