你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
在线生成Word文档的实现与应用(二)
 

1 设计过程

1.1 实现思路

结合以上分析,在线生成Word文档应用的大致思路如下:

1)编制文档模板,定义模板中标签内容与后台数据项的对应关系(示例中采用的是数据集的行列对应);

2)当用户点击在线生成Word时,JSP页面前端将文档模板编号传入后端;

3)服务端后端程序按照文档模板编号获取对应的数据源ID列表,再按照各个数据源通过JDBC方式获取数据集;

4)服务端后端程序按照文档模板编号通过Word程序COM组件的读取文档模板并遍历其中需要替换的内容标签,并使用标签对应的后台数据替换标签文本;

5)服务端后台程序将处理完毕的文档模板另存为Word文档。

6JSP页面将保存的Word文档路径通过HTML链接推送给前端页面;

7)用户通过点击HTML链接来下载或使用浏览器打开Word文档。

1.2 主要类设计

1.2.1 文档生成器—DocBuilder

顾名思义,文档生成器主要用于在后台生成Word文档。其实现2.1节中第(3)到(5)的功能。其关键成员有三个:

1)文档模板ID,用于接收JSP页面传过来的文档模板标识;

2Word文档工具,用于获取文档模板中的所有需要替换的文本标签、使用后台数据替换文本标签和将替换后的文档另存为新的Word文档。

3)数据集容器,其是一个以数据集名为键的散列表容器,其元素值是一个二维数组,用于存放结果集的单元值。

 

1.2.2 Word工具类—MsWordUtil

Word工具类是在JACOB的基础上对Word COM对象的操作所进行的再次封装,其以单例的形式提供了对Word文档的操控,其主要包括:

1)建立/断开与Word程序COM组件的连接;

2)文档操作,包括:新建、保存、另存和关闭;

3)获取文档中所有指定左右标签的文本块;

4)使用新文本替换文档中所有旧文本。

 

1.2.3 标签解析器—TagParser

标签解析器用于解析文档模板中文本标签内的文本,如4示的文档模板中,表格单元格中处于左右标签“[%”和“%]”内的文本:=RS(数据集ID,行号,列号)”。

每解析一个文本标签即可检索其对应的后台数据,并进行文本替换,例如将标签“[%=RS(1,0,1)%]”替换成结果集1中第1行第2列的列值“张三”。

1.2.4 Web端生成在线文档的桩模块—stub.jsp

JSP页面用于接收前端页面传递的文档模板参数,并调用后台的文档生成器来生成目标Word文档,并以HTML链接的方式将目标文档的URL推送到前端页面。

 

1.3 数据库设计

案例中使用的是Oracle数据库,其中示例数据表是员工表(TAB_STAFF),其结构定义如2所示。

2 员工表规格定义

字段名

类型

约束

默认值

备注

STA_ID

VARCHAR2(32)

PK

 

工号

STA_XM

VARCHAR2(20)

 

 

姓名

STA_XB

VARCHAR2(16)

 

FK

性别

STA_SR

DATE

 

 

出生日期

STA_RZRQ

DATE

 

 

入职日期

STA_ZGXL

VARCHAR2(16)

 

FK

最高学历

STA_BYXX

VARCHAR2(50)

 

 

毕业学校

STA_ZP

BLOB

 

 

照片

STA_BM

VARCHAR2(16)

 

FK

部门

STA_GW

VARCHAR2(16)

 

FK

岗位

 

 

 

 

 

 

  推荐精品文章

·一文解读:工程师常用的接口大全
·谷歌在深圳设立办公室 或专注硬件业务
·甲骨文发布关键补丁 修复英特尔芯片漏洞
·容器圈2017年回顾及2018年技术热点预测
·外媒速递:Web开发者与用户界面开发者之间…
·在2018年最值得去学习的编程语言
·共享医疗来了!温州全民健康信息化“十三…
·百度 CES 发布会:重磅推出 Apollo 2.0,…
·数据科学热到爆,如何让数据成为运维的大…
·芯片涨价潮再度来袭,2018芯片国产化迫在…
·美团云+AI,打造最开放人工智能平台,带来…
·京东京麦:微服务架构下的高可用网关与容…
·阿里云计算公司总部效果图曝光 预计2021年…
·东进:加密将成为中国企业数据安全的标配…

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089