機房系統(五)——【Excel表匯出】
阿新 • • 發佈:2018-12-02
前言
最近在做機房收費系統的時候,遇到了將查詢結果匯出為Excel表的形式。一開始感覺這個很難,但經過查閱相關的部落格後,還是比較順利的實現功能了。
正文
在VB中匯出Excel表,實際上就是VB與Excel的互動。首先我們的計算機中要有Excel,然後從VB程式中引用下框中內容。
PS:如果一開始沒有找到這一項,也不用著急。單擊右側的“瀏覽”按鈕即可,找到自己電腦上Excel檔案的位置,新增上再引用就OK。(為方便快速找到Excel檔案的位置,我們可以先找到Excel.exe程式,右擊檢視檔案所在位置,在瀏覽時候直接定位到該位置。)
引用完成後,下一步就需要讓VB能認識Excel了。為讓他們能互相認識,可以和睦共處,就需要我們做下面的工作來幫助他們了。
結語
在機房收費系統中,多次用到了Excel表的匯出,所以我將這部分程式碼宣告到了模組中,用到的時候直接用Call呼叫即可。在匯出選擇是否儲存時,點選否會出現錯誤,而不是直接關閉。所以在呼叫的同時,增加了一步錯誤處理。
最近在做機房收費系統的時候,遇到了將查詢結果匯出為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呼叫即可。在匯出選擇是否儲存時,點選否會出現錯誤,而不是直接關閉。所以在呼叫的同時,增加了一步錯誤處理。