Excel Add-On 显示来自(Mysql 数据库)的数据
Posted
技术标签:
【中文标题】Excel Add-On 显示来自(Mysql 数据库)的数据【英文标题】:Excel Add-On to display data from (My)SQL Database 【发布时间】:2008-12-15 20:43:36 【问题描述】:有没有一种简单的方法可以将数据从 mysql/odbc 数据源导入到 Excel 电子表格中?
用户应该能够从下拉列表中选择一些值(例如日期范围、分支名称等),并且下拉列表中的值应该用于填充(准备)SQL 语句。结果应显示在 Excel 文件中。
理想情况下,应该有一个“保存快照”菜单项,将动态 excel 文件(保存 sql 语句)转换为静态 excel 文件,从而减少内部(例如 sql)对外部资源的暴露。
谢谢
【问题讨论】:
【参考方案1】:您可以下载ODBC driver for MySQL,创建数据源,然后使用MS Query 创建自定义 SQL 查询,您可以通过“数据”菜单将其添加到 Excel。
【讨论】:
【参考方案2】:http://sqlexcel.net/
【讨论】:
【参考方案3】:这是一个例子:
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
【讨论】:
【参考方案4】:这个方法应该比 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
【讨论】:
以上是关于Excel Add-On 显示来自(Mysql 数据库)的数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Excel (Mac) 中,如何修改图例以包含来自多列的内容
使用来自企业应用程序的 PHP 从 MySQL 数据生成大型 Excel 文件