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) 中,如何修改图例以包含来自多列的内容

excel表右下角不显示求和数

使用来自企业应用程序的 PHP 从 MySQL 数据生成大型 Excel 文件

excel16版表格显示为RC[],怎么设置按行数和列数显示

通用分页

如何在 Excel 中显示来自 Access 的二维数组记录集?