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

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

一、 概念

数据区域:是Word文档中具有 "PO_" 前缀命名的书签所定位的文档区域。简单来说,数据区域就是一种特殊的Word书签对象,便于定位Word文档中的内容。

数据标签:是任意的有效字符组成的特殊样式的字符串(如“【时间】”、“{姓名}”、“${name}”等等)作为标记,理论上这样的字符串(比如:“性别”、“地址”、“aa”、“bbcc”)也可以当做数据标签,但是不推荐使用,因为这样的标签不能从视觉上直观的看出word文档中包含了哪些数据标签。

二、使用

数据区域里面可以填充些的内容:文本、图片、Word文件、Excel文件。

48304ba5e6f9fe08f3fa1abda7d326ab.png

WordDocument doc = new WordDocument();

//填充文本

DataRegion dataRegion1 = doc.openDataRegion("PO_userName");

dataRegion1.setValue("张三");

//还可以给填充的文本设置字体,颜色,粗体等样式

dataRegion1.getFont().setColor(Color.blue);

dataRegion1.getFont().setSize(24);

dataRegion1.getFont().setName("隶书");

dataRegion1.getFont().setBold(true);

//填充图片

doc.openDataRegion("PO_deptName").setValue("[image]img/123.jpg[/image]");

//填充word文件

doc.openDataRegion("PO_deptName").setValue("[word]doc/aabb.doc[/word]");

//填充excel文件

doc.openDataRegion("PO_deptName").setValue("[excel]doc/bbcc.xls[/excel]");

48304ba5e6f9fe08f3fa1abda7d326ab.png

数据标签中可以填充的内容:文本。

48304ba5e6f9fe08f3fa1abda7d326ab.png

WordDocument doc = new WordDocument();

//填充文本,还可以设置字体、颜色等样式

DataTag deptTag = doc.openDataTag("{部门名}");

deptTag.setValue("市场部");

deptTag.getFont().setColor(Color.GREEN);

deptTag.getFont().setName("宋体");

deptTag.getFont().setSize(28);

48304ba5e6f9fe08f3fa1abda7d326ab.png

三、区别

DataRegion类是要与书签结合使用的,既可以先在Word文档中插入以“PO_”开头的书签定义数据区域,再在程序中通过WordDocument类对象的OpenDataRegion(String DataRegionName)方法获取DataRegion对象;又可以通过WordDocument类对象的CreateDataRegion(String NewDataRegionName, DataRegionInsertType insertType, String RelativeDataRegionName)方法直接创建数据区域从而获取DataRegion类对象。而DataTag类是与Word文档中用户插入的自定义特征文本结合使用的。在程序中DataTag类对象只能通过OpenDataTag(String DataTagName)方法获取。

另外,数据区域的名称(即书签名称)必须以“PO_”开头,两个书签之间要有最少一个的有效字符,不能重复,数据区域的名称和Word文档中的位置是一一对应的。而数据标签的名称就是具有一定特征的Word字符串文本,便于定位Word文档中的内容,可以重复,数据标签的名称和Word文档中的位置是一对多的关系。也就是说,同一个Name的DataRegion只能表示Word文档中唯一一个位置,而在Word文档中相同的特征字符串可以在多处出现。

所以DataRegion的优点是:DataRegion既可以填充文档内容,还可以创建文档内容、提交用户在DataRegion里输入的内容、获取用户提交的DataRegion里的内容,而DataTag只能用于填充文档内容。DataRegion的缺点是:DataRegion无法简单重复,必须要设置不同的书签,而DataTag可以在文档中多处生成需要重复的内容。

而应该用DataTag还是用DataRegion,则应该视具体的需求而定。当用户要提交Word中某部分数据或者想要获取Word中提交的某部分数据时则必须要用DataRegion;当用户不需提交数据或者获取数据,并且填充的数据无重复项时,则两者均可;当用户不需提交数据或者获取数据,且填充的数据有多个重复项时,虽然两者均可,但是为了编程简便、代码高效,建议使用DataTag。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站访问优化,未完待续

下午,网站被吐槽了,访问太慢。最初,我以为是首页的banner图片,太大导致的,之前是500kb的高清图。立即去看了下,banner大图已经压缩到50kb了。so,不是图片的问题。 用Chrome打开网站&#xff0…

Linux中重要文件

用户文件 /etc/passwd------用户名和UID等信息 /etc/shadow------用户密码 组账号 /etc/group-------组名和GID等信息 /etc/gshadow----组密码 1、用户名和UID等信息存放在/etc/passwd中(7列) 每一行都表示的是一个用户的信息;一行有…

HTML5教程(学完html的,这个可以快速过一遍)

目录 HTML5 教程HTML5 浏览器支持HTML5 新元素HTML5 语义元素HTML5 代码规范HTML5 MathMLHTML5 Web SQL数据库HTML5 迁移HTML5 CanvasHTML5 内联 SVGHTML5 Canvas VS svgHTML5 多媒体HTML5 Object元素HTML5 Audio音频HTML5 Video视频HTML5 新的input类型HTML5 表单元素

是时候抛弃Java 7 – JBoss EAP 6.4了!

这一周真是太棒了。 JBoss EAP 6.4已发布,并且在大量技术增强和新功能中 ,最大的是:Java 8已添加到受支持的配置列表中。 其中包括Oracle JDK和IBM JDK。 Java SE 7公开更新结束通知 2015年4月之后,Oracle将不再将Java SE 7的更新…

java 时间戳 星期几_java自定义获取星期几、几点、几分。

/*** author 9082046**qq.com**/public void out_week_hour_minute(){long eight_hour_ms 8*60*60*1000;//8小时*分*秒*毫秒,时区影响,北京时区:东八区。long per_week_ms 7*24*60*60*1000;//7天*时*分*秒*毫秒,一周。long four_day_ms 4*24*60*60*1000;//4天*时…

bzoj 3668 数位DP

收获: 1、如果有很多位操作,并且不包含-/等高级运算,那么可以一位一位考虑,如果求一个最优解,可以尝试逐位确定,这道题因为原始攻击值有范围,那么就需要数位DP。 1 /**************************…

常用的视频下载网站

视频已经成为生活中不可缺少的一部分,不搬运视频怎么在此基础上创新。 小视频下载 V视频助手 硕鼠视频下载 维棠视频下载 Apowersoft视频下载王 Video Grabber Eagleget视频下载 喜欢的朋友可以收藏一下,万一以后想用找不到就不能二次创新了!…

漏洞工具:nmap和nessus

NMAP NMAP(Network Mapper)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题.Nmap以新颖的方式使用原始IP报文来发现网络上有一些主机,那些主机提供什么服务&…

java调用kettle例子_Kettle API - Java调用示例

Kettle API - Java调用示例对向前兼容性的推荐:如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API。XML文件兼容Kettle所有版本,同样对job有效的。1.下面的例子进行以下操作:1创建Transformat…

问题:三元向量的比较

粉丝投来一个题目:要求用到函数调用,编写程序 题目内容: 如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以…

css隐藏元素的几种方法与区别

css隐藏元素的几种方法与区别 一:display:none;隐藏不占位 display 除了不能加入 CSS3 动画豪华大餐之外,基本效果卓越,没什么让人诟病的地方。二:position:absolut;left/top:-99999px;足够大的负值使其不可…

mysql版本不同会导致语法错误码_神奇的 SQL,Group By 真扎心,原来是这样!

作者:青石路原文:cnblogs.com/youzhibing/p/11516154.htmlGROUP BY 后 SELECT 列的限制标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM …

java线程池并发_Java并发教程–线程池

java线程池并发Java 1.5中提供的最通用的并发增强功能之一是引入了可自定义的线程池。 这些线程池使您可以对诸如线程数,线程重用,调度和线程构造之类的东西进行大量控制。 让我们回顾一下。 首先,线程池。 让我们直接进入java.util.concurre…

在Windows XP使用LC5(L0phtCrack)

LC5简介: LC5是国外一种很有名的密码破解软件,能破解用LM加密的SAM。可用它猜解2000\Xp\2003密码。它是著名的美国计算机安全公司Stake出品的Window/Unix密码查找软件LC4/LC5。 使用方法: 1,在主机里新建用户名,密码…

C++ 在屏幕上用星号打印菱形

粉丝提问&#xff1a;C 在屏幕上用星号打印菱形 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void pr_start(int _num) {int n0;int i 0;for (n 1; n < 2*_num; n) {int temp n;if (n > _num){temp - 2 * (n - …

mysql组件化_MySql笔记

1、数据库基础操作语句链接数据库&#xff1a;mysql -u root -p 123456;选择数据库&#xff1a;USE database_name;显示可以数据库&#xff1a;SHOW DATABASES;显示数据库所有表&#xff1a;SHOW TABLES;显示表的列&#xff1a;SHOW COLUMNS FROM table_name;2、检索数据检索单…

让我们回顾一下如何通过JDBC插入Clob或Blob

LOB是所有数据库以及JDBC中的PITA。 正确处理它们需要花费几行代码&#xff0c;并且可以确保最终会出错。 因为您必须考虑以下几点&#xff1a; 首先&#xff0c;LOB是繁重的资源&#xff0c;需要特殊的生命周期管理。 分配LOB后&#xff0c;最好“释放”它&#xff0c;以减轻…

Android JNI入门第五篇——基本数据类型使用

前面讲到了java和native数据类型&#xff0c;这里就开始做一下使用&#xff1a; 第一步&#xff1a;新建工程 第二部&#xff1a;书写 java方法&#xff1a; [java] view plaincopyprint? public class NativeMethod { static { System.loadLibrary("com…

使用微信开发者工具添加小程序底部导航栏报错

粉丝求助&#xff1a; 示例图&#xff1a; 看了这个页面&#xff0c;很明显这个页面引用的路径都有问题。 解决办法&#xff1a;

应用“Cain Abel”实现DNS欺骗

环境的搭建&#xff1a; 1&#xff0c;在Windows 7安装IIS服务&#xff0c;访问www.baidu.com或其他任意站点&#xff0c;保存首页文件至本地wwwroot文件夹中&#xff1b; &#xff08;1&#xff09;打开控制面板&#xff0c;找到“程序”&#xff0c;点进去 点击“打开或关闭…