1. 程式人生 > >機房系統(五)——【Excel表匯出】

機房系統(五)——【Excel表匯出】

前言
最近在做機房收費系統的時候,遇到了將查詢結果匯出為Excel表的形式。一開始感覺這個很難,但經過查閱相關的部落格後,還是比較順利的實現功能了。
正文
在VB中匯出Excel表,實際上就是VB與Excel的互動。首先我們的計算機中要有Excel,然後從VB程式中引用下框中內容。

在這裡插入圖片描述


PS:如果一開始沒有找到這一項,也不用著急。單擊右側的“瀏覽”按鈕即可,找到自己電腦上Excel檔案的位置,新增上再引用就OK。(為方便快速找到Excel檔案的位置,我們可以先找到Excel.exe程式,右擊檢視檔案所在位置,在瀏覽時候直接定位到該位置。)

引用完成後,下一步就需要讓VB能認識Excel了。為讓他們能互相認識,可以和睦共處,就需要我們做下面的工作來幫助他們了。

    Dim ExcelApp As Excel.Application   '定義Excel表格應用程式
    Dim ExcelBook As Excel.Workbook     '定義Excel表格工作簿
    Dim ExcelSheet As Excel.Worksheet   '定義Excel表格工作表
    Dim i As Integer    '定義excel表中的行變數
    Dim j As Integer    '定義excel表中的列變數
Set ExcelApp = CreateObject("Excel.application") '建立一個excel應用程式物件 Set ExcelBook = ExcelApp.Workbooks.Add '建立一個工作簿 Set ExcelSheet =ExcelBook.Worksheets(1) '建立一個工作表 DoEvent '因以下程式碼執行時間較長,所以轉讓控制權,讓作業系統處理其他事件,避免操作不響應誤認為宕機 If MSFlexGrid1.Rows <= 1 Then MsgBox "沒有可匯出資料!",vbOKOnly, "
溫馨提示:" End If With MSFlexGrid1 For i = 0 To .Rows - 1 '迴圈新增行內容 For j = 0 To .Cols - 1 '迴圈新增列內容 DoEvents ExcelApp.ActiveSheet.Cells(i + 1, j+ 1) = .TextMatrix(i, j) '新增單元格內容 Next j Next i End With ExcelApp.ActiveWorkbook.SaveAs App.Path& "\學生查詢.xls" '設定Excel儲存路徑 ExcelApp.ActiveWorkbook.Saved = True '儲存excel表格 MsgBox "匯出成功!", vbOKOnly, "溫馨提示:" ExcelApp.Visible = True '顯示excel表格 Set ExcelApp = Nothing '釋放ExcelApp物件 Set ExcelBook = Nothing Set ExcelSheet = Nothing

結語
在機房收費系統中,多次用到了Excel表的匯出,所以我將這部分程式碼宣告到了模組中,用到的時候直接用Call呼叫即可。在匯出選擇是否儲存時,點選否會出現錯誤,而不是直接關閉。所以在呼叫的同時,增加了一步錯誤處理。