Excel Add-On显示来自(My)SQL数据库的数据

有没有一种简单的方法将数据从mysql / odbc数据源导入到Excel电子表格中?

用户应该能够从下拉列表中select一些值(例如date范围,分支名称等),并使用下拉列表中的值来填充(准备好)SQL语句。 结果应显示在Excel文件中。

理想情况下,将有一个“保存快照”菜单项,将dynamic的Excel文件(与保存的SQL语句)转换为一个静态的Excel文件,从而减less内部(例如SQL)暴露给外部资源。

谢谢

您可以下载MySQL的ODBC驱动程序 ,创build数据源,并使用MS Query来创build自定义SQL查询,您可以通过“数据”菜单将其添加到Excel中。

这里是一个例子:

Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") strCon = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=MyDB;" _ & "User=UName;Password=PWord;Option=3;" cn.Open strCon strSQL = "SELECT * FROM Members" rs.Open strSQL, cn Worksheets(3).Cells(2, 1).CopyFromRecordset rs 

这个方法应该比CopyFromRecordset快。 当然,你必须确保你已经安装了MySQL的ODBC 5.1驱动程序…

 With AWorksheet.QueryTables.Add( _ Connection:="ODBC;Driver=MySQL ODBC 5.1 Driver;Port=3306;Server=mysqlservername;Database=snort;User=username;Password=password;Option=3;" Destination:=AWorksheet.Range(AWorksheet.Cells(1, 1), AWorksheet.Cells(1, 15)) _ ) .CommandText = "SELECT Something FROM Somewhere" .Name = "Name" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False .Delete End With