机房收费系统———如何将MSFlexGrid中的数据导入到Excel中

来源:互联网 发布:沈阳java培训 编辑:程序博客网 时间:2024/05/19 14:19

    机房收费系统进行了一段时间了,虽然说大体上跟学生信息管理系统一样,不过也有不一样的地方。比如说报表、如何将MSFlexGrid中德数据导入到Excel中等等。这些东西原来没有接触过,第一次接触难免有些陌生。这些问题困扰了我好长-时间,一看到它头都大了。不过,提高班名言——不将就是发现的源动力。本着这一原则,慢慢的攻克了这些问题。


    机房收费系统中好几个地方需要将MSFlexGrid中德数据导入到Excel中,这是在学生信息管理系统中没有的功能。首先,首先需要在vb里面引用我们所需要的对象:Microsoft excel 14.0 object library。因为好几个窗体都要用到这个,所以为了简单起见,直接在模块中进行声明一下,到时候直接调用就Ok了。


下边是模块中的代码:


'MSHflexgrid 控件中的数据导入到excel表中Public Sub export(formname As Form, flexgridname As String)   '参数传递        Dim xlApp As Object                     '创建一个类 用来创建excel实例化对象        Dim xlBook As Object                    'Excel.Workbook           '用来创建工作薄        Dim xlSheet As Object                   'Excel.Worksheet     '用来创建一个工作表              '鼠标指针的形状变为沙漏型,表明正在导入数据        Screen.MousePointer = vbHourglassOn Error GoTo Err_Proc                                      '错误处理过程        Set xlApp = CreateObject("Excel.Application")       '将类xlApp实例化为一个excel表        Set xlBook = xlApp.Workbooks.Add        Set xlSheet = xlBook.Worksheets(1)          '表的名字也可以更改,不再叙说        '将数据填入到excel中        Dim lngRows As Long        Dim intCols As Integer        With formname.Controls(flexgridname)            '对行和列进行循环            For lngRows = 0 To .Rows - 1                    For intCols = 0 To .Cols - 1                        xlSheet.Cells(lngRows + 1, intCols + 1).Value = "'" & .TextMatrix(lngRows, intCols)                    Next intCols            Next lngRows        End With        xlApp.Visible = True        Screen.MousePointer = vbDefault        Exit SubErr_Proc:        '鼠标回复原样        Screen.MousePointer = vbDefault        MsgBox "请确认您的电脑已安装Excel!", vbExclamation, "提示"   End Sub

当调用这个过程时,只需要

Private Sub cmdLead_Click()     Call export(Me, "myflexgrid")End Sub


这样就Ok了。


    这只是将MSFlexGrid中德数据导入到Excel中的其中一种方法,相信还有很多种方法可以实现这一过程。在这里就不一一论述了,以上有不足之处,还望各位朋友指正。