天天看點

機房收費系統——将MSHFlexGrid控件中的資料導出到Excel      方法一:在根目錄中事先建立空的Excel表格   

               機房收費系統中,好多查詢的窗體都包含同一個功能:将資料庫中查詢到的資料顯示在MSHFlexGrid控件中,然後再把MSHFlexGrid控件中的資料導出到Excel表格中。

       雖然之前做過學生資訊管理系統,不過并沒有涉及到這個功能,是以記錄于此,于己,回顧反思,于大家,分享學習。

      方法一:在根目錄中事先建立空的Excel表格   

        1、在與VB工程同一根目錄中建立将要導入資料的Excel表格;

        2、在VB事件中寫代碼:      

Private Sub cmdExport_Click()
    Dim i As Integer
    Dim j As Integer
    myFlexGrid.Redraw = False    '關閉表格重畫,加快運作速度
     Set xlApp = CreateObject("Excel.Application")   '建立EXCEL對象
     '打開已經存在的EXCEL工件簿檔案
     Set xlBook = xlApp.Workbooks.Open(App.Path & "\學生上機記錄.xls")
    xlApp.Visible = True '設定EXCEL對象可見
     Set xlSheet = xlBook.Worksheets("Sheet1") '設定活動工作表

     For i = 0 To myFlexGrid.Rows - 1 '行循環
            For j = 0 To myFlexGrid.Cols - 1 '列循環
                 myFlexGrid.Row = i
               myFlexGrid.Col = j
              '儲存到EXCEL									              	     	  	     xlBook.Worksheets("Sheet1").Cells(i + 1, j + 1) = myFlexGrid.Text          					    	 Next j
    Next i
    myFlexGrid.Redraw = True
End Sub
           

           方法二:直接引用VB中自帶的Microsoft Excel 14.0 Object Library

         1、在VB設計器中,工程→引用,引用Microsoft Excel 14.0 Object Library;

          2、編寫代碼:   

Private Sub cmdExport_Click()
    Dim i As Integer
    Dim j As Integer
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")   '執行個體化對象xlApp
    xlApp.Visible = True
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)
    For i = 0 To myFlexGrid.Rows - 1
        For j = 0 To myFlexGrid.Cols - 1
            myFlexGrid.Row = i
            myFlexGrid.Col = j
            xlSheet.Cells(i + 1, j + 1) = Trim(myFlexGrid.Text)
        Next
    Next
End Sub
           

                第一種方法不用引用Microsoft Excel 14.0 Object Library,但必須得在根目錄下建立相應的Excel表格,第二種方法不用建立表格,直接引用Microsoft Excel 14.0 Object Library可以直接執行個體化,比較友善。