2024年6月5日发(作者:)

VB6.0类模块实现DataGrid表格导出到Excel(原创)

将VB中的DataGrid导出到Excel功能网上有很多实例,大家都可以下载后修改修

改使用,但是一个程序中多次使用该代码的话,每次都需要修改里面的相关参数,较为麻

烦。作者奉行的理念是“拿来就用”,通过类模块的封装,可以很好的提高代码的重用

性,只需要2行代码就可以搞定哦。

本源码复制粘贴后即可使用。爽吧!如果你用的是其他表格控件,如

MSHFlexGrid,则直接将参数中的DataGrid参数换成你的控件类型即可。

如有问题经联系作者wink5000@

一、准备工作

要想使用本类模块,必须像使用其他导出Excel代码段一样,先引用Microsoft

Excel Object Library 。这是一定要注意的,否则调用该类模块将出错。

二、类模块源码

类模块名称:ToExcel

Option Explicit

'**********************************************************

'**函 数 名:GridToExcel

'**输 入:needGrid,needAdodc

'** :

'** :

'**输 出:

'**功能描述:自动将DataGrid表格中的内容导出到Excel

'**全局变量:见变量声明

'**调用模块:

'**作 者:吴长平

'**日 期:2013-1-24 08:45:48

'**修 改 人:吴长平

'**日 期:

'**版 本:V1.0.0

'**支 持:需要引用Excel Object Library

'*********************************************************

Public Sub GridToExcel(ByVal needGrid As DataGrid, ByVal needAdodc As

set)

'记录集为空时自动报错,并退出过程

If needAdodc Is Nothing Then

MsgBox ("参数中的记录集为空!")

Exit Sub

End If

'定义整数i,j

Dim i As Integer, j As Integer

'定义Excel应用程序对象

Dim xlapp As ation

'定义Excel工作薄对象

Dim xlbook As ok

'定义Excel工作表对象

Dim xlsheet As eet

'创建Excel应用程序对象

Set xlapp = CreateObject("ation")

'Excel应用程序对象可见

e = True

'新建工作薄,赋值给xlbook

Set xlbook =

'工作薄xlbook的第一个工作表赋值给xlsheet

Set xlsheet = eets(1)

'添加表头

For i = 0 To - 1

(1, i + 1) = s(i).Caption

Next i

'循环向Excel表格的单元格中添加内容

i = 0

'一直输出到记录集的末尾

Do While ( = False)

For j = 0 To Int( - 1)

= j

(i + 2, j + 1) =

Next j

'记录集指针向下移动一条

xt

i = i + 1

Loop

'释放Excel工作薄对象

Set xlapp = Nothing

'释放义Excel工作表对象

Set xlbook = Nothing

End Sub

三、类模块的使用

添加一个按钮,代码如下

Private Sub Command3_Click()

'声明一个ToExcel对象,名字叫myExcel(这个名字可自定)

Dim myExcel As New ToExcel

'将记录集指针调整到第一条。否则第一次导出Excel成功,第二次再导出Excel表是

空的。原因是你已经将记录指针移到最后,后面没有记录了。

rst

'调用类模块中的方法(参数根据你的实际情况自定)

Call Excel(DataGrid1, set)

End Sub

四、总结

通过这个类模块的学习,大家可以简单掌握类模块中控件作为参数是如何传递的,很

简单吧。以后你再使用导出Excel功能的时候只需要3行代码就可以搞定。爽吧?其实你

可以将使用时重复出现的“rst”这段代码封装到类模块中,

以后你只要2行代码就可以实现导出Excel功能了。这点小事留给读者做个小练习吧!

最后要说下的是,这个类模块没有判断控件是否存在,希望高手能够不吝赐教。