如何将mshflexgrid控件的记录导出到excel呢?这个问题看似不简单,其实挺简单的。一看到excel,就会想起陈伟老师的vb视频,其中的vb与office 41-43集中讲到了这点---使用office对象进行数据交换。使用office对象的方法如图所示:
所以具体的解决方法:
第一步是先引用excel对象,因为我用的是office2010,所以引用对象为micro excel 14.0 object library .
第二步是创建Application对象,如:Dim xlsApp As Excel.Application Set xlsApp = CreateObject("Excel.Application")
第三步是使用Application及其子对象,这一步是最重要的,我们要输出数据的具体操作就在这里操作。比如:要将mshflexgrid中的记录对应的导出到excel中。
第四步则是关闭Application 对象。如:Set xlsApp = Nothing ,这一步是将excel对象从内存中卸载。
下面显示我的代码:
Dim i As Integer, j As Integer
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Add
Set xlsSheet = xlsBook.Worksheets(1)
For i = 0 To MSHFlexGrid1.Rows - 1
For j = 0 To MSHFlexGrid1.Cols - 1
xlsSheet.Cells(i + 1, j + 1) = MSHFlexGrid1.TextMatrix(i, j)
Next j
Next i
xlsApp.Visible = True
Set xlsApp = Nothing
代码中标记处的地方需要注意一点:vb中的所有集合对象是以1为基底的,而mshflexgrid控件是以0为基底的。