PageOffice动态插入Word表格

在项目的开发中会遇到这样的需求:要求在生成word文件的时候,在文件的指定位置生成不定数目的表格,每个表格的结构是一样的,但是需要根据数据库中的数据记录对每个表格填充不同的数据。上面所说的这个需求的基本模型可以认为是在word文件的指定位置开始生成工资条,因为工资条的特点就是每个人的表格都一样,只是表格里面的信息不一样。

解决思路: 使用PageOffice实现这个需求模型的话需要一个模板template.doc,模板template.doc中包含了一个设计好的工资条的表格,在用PageOffice打开正式的文件(比如:zhengshi.doc)之前,用PageOffice的WordDocument对象获取到zhengshi.doc中要插入表格的那个指定位置,然后用DataRegion对象插入模板文件template.doc到这个位置,再使用Table对象把数据库中的值填充到表格中,接着在这个表格后面重复前面插入表格的方法插入新的表格和数据,直到所有的表格都生成完毕。

详细效果请参考PageOffice开发包中Samples4示例:
三、10、插入Word表格模板动态生成工资条

示例说明: 为了便于分析PageOffice 实现动态插入表格的核心代码,此演示打开了一个空白的Word文件作为正式文件来生成工资单。编写代码在文件末尾循环动态创建数据区域,并在数据区域中插入template.doc和填充数据,最终在word文件中生成所有员工的工资条信息。

  1. 模板template.doc 的表格如下:
员工编号员工姓名所属部门工资发放时间
.    
  1. 示意代码如下:
WordDocument doc = new WordDocument();
DataRegion data = null;
Table table = null;
int i = 0;
while (rs.next()) {
	data = doc.createDataRegion("reg" + i,DataRegionInsertType.Before, "[End]");
	data.setValue("[word]doc/template.doc[/word]");//插入模板中表格到文件中
	//给单元格赋值
	table = data.openTable(1);
	table.openCellRC(2, 1).setValue(rs.getString("ID"));	
	table.openCellRC(2, 2).setValue(rs.getString("UserName"));
	table.openCellRC(2, 3).setValue(rs.getString("DeptName"));
	table.openCellRC(2, 4).setValue(rs.getString("Salary"));
	table.openCellRC(2, 7).setValue(rs.getString("DateTime"));
	i++;
}
  1. 在111.doc中生成的表格如下:
员工编号员工姓名所属部门工资发放时间
0001张志强技术80002013-2-2
员工编号员工姓名所属部门工资发放时间
0002李志技术90002013-2-2

……

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值