前言
很多查询结果在MSHFlexGrid中显示后,我们还希望有那么一个独立的地方呈现这些数据,既清晰还可以进行一些编辑运算。方法有很多种,下面讲一下我是如何实现MSHFlexGrid中查询结果显示在Eccel表格中。
代码展示
首先在VB中,工程→引用,引用Microsoft Excel 14.0 Object Library
'导入Excel表格
Dim xlApp As Excel.Application '定义一个Excel应用程序
Dim xlBook As Excel.Workbook '定义一个工作簿
Dim xlSheet As Excel.Worksheet '定义一个工作表
Dim xlRange As Excel.Range '定义一个单元格范围
Dim i As Integer '定义横坐标
Dim j As Integer '定义纵坐标
Set xlApp = CreateObject("Excel.application") '创建Excel应用程序对象
Set xlBook = xlApp.Workbooks.Add '创建一个工作簿
Set xlSheet = xlBook.Worksheets(1) '创建一个工作表
DoEvents '转让控制权,以便让操作系统处理其它的事件
With myflexgrid '将FlexGrid控件中内容导入Excel表格中
For i = 0 To .Rows - 1 '遍历所有的行
For j = 0 To .Cols - 1 '遍历所有的列
DoEvents '转让控制权,以便让操作系统处理其它的事件
xlApp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j) '创建新的单元格,并添加FlexGrid中的内容
Next j
Next i
End With
xlApp.Visible = True '将表格显示出来
xlApp.ActiveWorkbook.Saved = True '保存表格
MsgBox "导出完成!", vbOKOnly + vbExclamation, "提示" '保存成功提示信息
需要注意的问题:
1、一开始的时候我是让导出的Excel表保存在默认的位置,但是它不会直接打开,这样用户用的时候不知道导出的表去了哪里还要找半天,所以可以让它自动打开或者是打开一个位置保存的路径
2、机房收费系统中有很多导出表的窗体,如果一个个的写代码太繁琐了,可以在模块里面定义一下,这样直接调用一下就方便很多了
总结
一开始写导出报表的代码,我真是毫无头绪,然后从百度上查了查了解了一下大概过程,才明白是怎么一回事。而且像我这么懒的人当然会找简单的方法实现了,方法有很多种大家可以去尝试一下