一直放着导出为Excel的这一步,以前一直觉得这个应该不好做吧,但是今天把代码写出来,才觉得没有想象的那么难.
首先,引用对象:Microsoftexcel 14.0 object library
接下来就是代码的设置了:
Dim TempExcel As Excel.Application '声明一个Excel工作表
Dim TempSheet As Excel.Worksheet '声明一个excel工作簿
Dim TempRow As Integer '定义表格控件中的行数
Dim TempCol As Integer '定义表格控件中的列数
上面是声明部分,所需变量。
然后是核心代码:
'先判断是否查询到数据
If myFlexGrid.Rows > 1 Then '如果查询到数据
Set TempExcel = New Excel.Application '实例化应用程序
TempExcel.Application.Visible = True '显示Excel
'在程序中添加一个工作簿
TempExcel.Workbooks.Add (1)
'实例化表单,使这个表单称为活动工作簿中的活动表单
Set TempSheet = TempExcel.ActiveWorkbook.ActiveSheet
'将表格中的数据导入到活动表单
For TempRow = 0 To myFlexGrid.Rows - 1 '行循环
For TempCol = 0 To myFlexGrid.Cols - 1 '列循环
TempSheet.Cells(TempRow + 1, TempCol + 1) = myFlexGrid.TextMatrix(TempRow, TempCol)
Next TempCol
Next TempRow
Else '如果没有查询数据
MsgBox "没有查询到任何数据,将退出导出过程!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
这个过程跟ADO对象的使用很像,都是先声明,然后实例化,再使用的过程。其中用了个循环来使MSHFLEXGRID控件中的数据显示到Excel表中。