首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

VBScript 連接 MySQL 導出資料到 Excel 完整實作

     編輯:MySQL 綜合教學

VBScript 連接 MySQL 導出資料到 Excel 完整實作

本文示範如何使用 VBScript(.vbs)透過 ODBC 連接 MySQL,查詢資料並自動寫入新建的 Excel 檔案,適合 Windows 環境下的輕量級資料匯出自動化需求。

前置準備

  1. 下載並安裝 MySQL ODBC Driver(官網 MySQL Connector/ODBC)。
  2. 控制台 → 管理工具 → ODBC 資料來源(32/64 位依 Office 版本),新增 System DSN,驅動選 MySQL ODBC 5.3 Unicode Driver,填入 Server、Port、Database、UID、PWD。

核心程式碼結構

'--- 1. 連接 MySQL ---
StrCnn = "Provider=MSDASQL.1;Persist Security Info=True;" & _
         "Extended Properties='Driver=MySQL ODBC 5.3 Unicode Driver;" & _
         "SERVER=188.1.1.132;UID=grute;PWD=grute;DATABASE=grute;PORT=3307'"
Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open StrCnn
If Cnn.State = 0 Then MsgBox "資料庫連線失敗" : WScript.Quit

'--- 2. 建立 Excel ---
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add()
Set oSheet = oExcel.ActiveSheet

'--- 3. 執行查詢 ---
strQuery = "SELECT * FROM test"
Set rs = Cnn.Execute(strQuery)

'--- 4. 寫入標題列 ---
arrCol = Array("序號", "姓名", "用戶名", "密碼", "權限")
For k = 0 To UBound(arrCol)
    oSheet.Cells(1, k+1).Value = arrCol(k)
Next

'--- 5. 迴圈寫入資料列 ---
i = 1
If Not rs.BOF Then
    Do While Not rs.EOF
        i = i + 1
        For k = 0 To UBound(arrCol)
            oSheet.Cells(i, k+1).Value = rs(arrCol(k))
        Next
        rs.MoveNext
    Loop
Else
    WScript.Echo "查無資料"
End If

'--- 6. 存檔與清理 ---
oExcel.ActiveWorkbook.SaveAs "C:\Users\Administrator\Desktop\test.xlsx"
oExcel.Quit
rs.Close
Cnn.Close
Set Cnn = Nothing
MsgBox "導出完成"

關鍵細節說明

  • 連接字串:Extended Properties 內需用單引號包裹 Driver 參數,雙引號跳脫需注意。
  • 欄位對應:陣列 arrCol 順序必須與 SELECT * 回傳欄位順序一致,建議改為明確列出欄位名 SELECT id, name, ... 避免結構變更導致錯位。
  • Excel 物件釋放:依序 Quit → Close → Set Nothing,避免殘留 EXCEL.EXE 進程。
  • 錯誤處理:生產環境建議加入 On Error Resume Next 與錯誤日誌記錄。

完整可執行腳本

將下列碼存為 export_mysql_to_excel.vbs,雙擊即可執行(需依實際環境修改 IP、帳密、資料庫、表名、欄位、存檔路徑):

Dim Cnn, rs, strCnn, i, arrCol
arrCol = Array("序號", "姓名", "用戶名", "密碼", "權限")

strCnn = "Provider=MSDASQL.1;Persist Security Info=True;" & _
         "Extended Properties='Driver=MySQL ODBC 5.3 Unicode Driver;" & _
         "SERVER=188.1.1.132;UID=grute;PWD=grute;DATABASE=grute;PORT=3307'"

Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open strCnn
If Cnn.State = 0 Then MsgBox "連線失敗" : WScript.Quit

Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add()

strQuery = "SELECT * FROM test"
Set rs = Cnn.Execute(strQuery)

' 寫入標題
For k = 0 To UBound(arrCol)
    oExcel.Cells(1, k+1).Value = arrCol(k)
Next

i = 1
If Not rs.BOF Then
    Do While Not rs.EOF
        i = i + 1
        For k = 0 To UBound(arrCol)
            oExcel.Cells(i, k+1).Value = rs(arrCol(k))
        Next
        rs.MoveNext
    Loop
End If

oExcel.ActiveWorkbook.SaveAs "C:\Users\Administrator\Desktop\test.xlsx"
oExcel.Quit
rs.Close
Cnn.Close
Set Cnn = Nothing
MsgBox "導入完成"

此方案無需安裝額外程式語言環境,利用 Windows 內建 WSH 執行,適合排程任務或臨時匯出需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved