天天看點

MSHFlexGrid中的資料導出為Excel

    在機房收費系統中,需要查詢充值金額。選擇好日期段,點“查詢”即在MSHFlexGrid(在這裡,此控件命名為:MSHFGRecharge_Records)控件中顯示資訊(看下圖——圖1)。那如何将将顯示出的資訊導出為Excel呢?

MSHFlexGrid中的資料導出為Excel
 圖1

導出方法(大體思路):

1.引用excel對象:MicrosoftExcel 14.0 Ojbect Library

2.建立Application對象:SetxlsApp = CreateObject("Excel.Application")

3.使用Application及其子對象:将mshflexgrid中的記錄對應的導出到excel中

4.關閉Application對象:Set xlsApp = Nothing

代碼部分:

Private Sub cmdTo_Excel_Click()
    Dim xlsApp As Excel.Application     '存儲所建立的EXCEL對象
    Dim xlsBook As Excel.Workbook       '存儲所建立的EXCEL工件簿檔案
    Dim xlsSheet As Excel.Worksheet     '存儲所設定的活動工作表
    Dim intForRow As Integer            'for循環語句中的循環變量,用于控制行
    Dim intForCol As Integer            'for循環語句中的循環變量,用于控制列
 
    Set xlsApp =CreateObject("Excel.Application")       '建立EXCEL對象
    Set xlsBook = xlsApp.Workbooks.Add                  '建立EXCEL工件簿檔案
    Set xlsSheet = xlsBook.Worksheets(1)                '設定活動工作表
 
    '把表格中的資料寫入Excel對象中
    For intForRow = 0 To MSHFGRecharge_Records.Rows - 1
        For intForCol = 0 To MSHFGRecharge_Records.Cols - 1
            If intForCol = 0 Then       '第一行為學号,讓其以字元形式顯示,否則學号中前面的“0”就不顯示
                xlsSheet.Cells(intForRow + 1,intForCol + 1) = "'" &MSHFGRecharge_Records.TextMatrix(intForRow, intForCol)
            Else
                xlsSheet.Cells(intForRow + 1,intForCol + 1) = MSHFGRecharge_Records.TextMatrix(intForRow, intForCol)
            End If
        Next intForCol
    Next intForRow
 
    xlsApp.Visible = True                               '顯示Excel
    Set xlsApp = Nothing                                '交還控制給Excel
End Sub
           

 注意:

    看第一張圖,卡号中有以0開頭的。如果直接把表格中的資料導出到Excel中,卡号中的0就不會顯示(見圖2)。說明,預設導出的為非字元型格式,這就相當于,直接在Excel的單元格中輸入數字,預設為數值型。那如何顯示0呢?當然得轉成字元形式。是以,上方代碼,For循環語句中,用一個“If”語句進行選擇:隻要是首行的資料,就在前面加一個英文的單引号“'”。進而在Excel中,首列單元格中資料轉成了字元型,消失的0奇迹般再現(見圖3)!

MSHFlexGrid中的資料導出為Excel
   圖2
MSHFlexGrid中的資料導出為Excel
   圖3