DBF数据库如何批量转Word文档?
10-16
DBF数据库中的数据怎样转到WORD文档中?手工进行复制粘贴需要耗费不少时间精力,其实,一段小小的代码可以解决问题。你只需照搬即可。下面就为你详细介绍DBF数据库批量转Word文档教程。
笔者在近期的工作中,定期需要对一些文档信息进行归类整理,并利用Visual FoxPro 制作成DBF数据表文件,同时还需要根据该数据表导出Excel文档,并且制作Word文档信息表进行打印输出。由于DBF数据表的表结构以及Word文档中表格字段都是固定的,加上每次整理的文档信息数量颇大,手工进行复制粘贴需要耗费不少时间精力,因此笔者编写了一个实现批量复制的小程序,即实现DBF数据到Word文档表格的自动输出。
程序开发环境为:VB6.0,Foxpro 6.0,Word 2003。
程序应用的相关技术有:ADO( (ActiveX Data Objects) )、OLE(Object Linking and Embedding,对象连接与嵌入)。
程序实现的基本思路是,通过ADO访问DBF数据表,获取数据表内容,并将其写入固定格式的Word文档表格。
使用到的主要对象有 ADODB.Connection、ADODB.Recordset,Word.Application、Word.Acttivedocument、Word.Range等。
通过ADO实现DBF数据表的访问,VB代码如下:
Dim cn As New ADODB.Connection
cn.ConnectionTimeout = 15
cn.ConnectionString = "Provider=MSDASQL;" & _
"Driver={Microsoft Visual Foxpro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=" & dbfpath
cn.Open
实现DBF数据表的数据获取,VB代码如下:
Private rec As Variant
Dim rs As ADODB.Recordset
et rs = New ADODB.Recordset
Dim sqlstr As String
sqlstr = "select * from " & dbfname
rs.Open sqlstr, cn, adOpenStatic, adLockPessimistic
rec = rs.GetRows(n)
通过OLE实现打开Word文档,VB代码如下:
Private objWD As word.Application
Set objWD = CreateObject("Word.Application")
objWD.Documents.Open newfile ‘newfile 为文件名
实现Word文档表格内容的填写,VB代码如下:
ActiveDocument.Tables.Item(i).Cell(j, wordcol).Range.Text = rec(j, i - 1)
(说明:rec 是一个存储 Recordset数据集中数据的多维数组)
说明:为方便使用,所有相关代码(如图)也可到http://iask.sina.com.cn/u/ish?uid=1704202287下载。