一直放着导出为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表中。