如何将excel-2007与mysql连接起来。我在Windows 7,64位。使用excel-2007 32位和mysql 5.1版,32位。任何人都可以帮我如何在excel文件中导入我的mysql表数据。提前谢谢。
答案 0 :(得分:7)
要将您的excel-2007(或任何版本)与您的mysql连接,您需要ODBC驱动程序。请从经过身份验证的链接下载正确的ODBC驱动程序
http://dev.mysql.com/downloads/connector/odbc/
请确保根据您的计算机位架构下载正确的.msi或zip文件。您需要确保您的Mysql在32位或64位上运行。请点击此链接查看
MySQL: check what version : 32 bit or 64 bit?
此后请确保您的excel-2007为32位或64位。对于此打开的excel文件,启动任务管理器并检查“进程”选项下的位体系结构。
在我的情况下,我使用的是Windows7 64位,excel是32位,mysql也是32位
所以我从这个链接下载了Windows(x86,32位),MSI安装程序
http://dev.mysql.com/downloads/connector/odbc/
现在非常重要的一步: 为了在64位Windows计算机上使用32位ODBC驱动程序,必须使用32位ODBC管理程序配置它,通过正常的Windows菜单选项无法看到它。可以在C:\ Windows \ SysWOW64目录中找到32位操作的实用程序。 我们需要将SysWOW64目录添加到系统路径,如下所示
1. Click on start menu, right Click on My Computer -> Properties -> Advanced system settings
2. Choose Advanced Tab -> Environmental Variables -> System Variables
3. Select and edit the PATH variable. Prefix the PATH list with 'C:\Windows\SysWOW64;'!
截至目前为已安装的ODBC驱动程序设置了正确的路径,现在我们需要创建用于在excel和mysql之间进行链接的DSN(数据源名称)。 现在打开“控制面板”并单击“管理工具”菜单项以开始安装新数据源。选择“数据源ODBC”,这是添加新用户数据源的位置。单击对话框右侧的“添加”按钮。 现在按下“添加”按钮后,如果能够在“新建创建数据源”中看到“已安装的驱动程序”,则会弹出如下
然后,如果您按照此链接进行excel和mysql之间的链接,那就很好了。
http://blog.mclaughlinsoftware.com/microsoft-excel/accessing-to-mysql/
如果您无法找到已安装的驱动程序,则新建数据源的弹出窗口将如下所示
如果您的已安装的驱动程序未在那里列出,请不要惊慌。 访问位于' C:\ Windows \ SysWOW64 \ odbcad32.exe'的ODBC管理员实用程序。
在' C:\ Windows \ SysWOW64'中搜索odbcad32.exe。目录
现在双击搜索结果的第二个选项" odbcad32"
现在点击添加按钮,选择MySQL ODBC 5.3 ANSI Driver,点击完成
In pop up window enter your details e.g. Data Source Name = MySQLExcel
Description = MySQL Excel Connector/ODBC
Server = localhost
Username and password of mysql, and name of the database.
点击测试,如果一切正常,那么你得到一个确认"连接成功"
在测试之后,您将返回到第一个屏幕,在该屏幕中您应该看到已添加MySQLExcel数据源名称。单击“确定”按钮以取消对测试的肯定。
现在要设置从mysql导入到excel的数据,打开excel,单击Data Ribbon。单击“从其他来源”按钮。在下拉菜单中,单击“从数据连接向导”项,该项将启动“数据连接向导”。
从数据源列表中选择其他/高级项目。单击“下一步”按钮继续。
从OLE DB提供程序列表中选择Microsoft OLE DB Provider for ODBC Drivers项。单击“下一步”按钮继续。
在“数据链接属性”对话框中选择“连接”选项卡。在项目#1下,从下拉框中选择数据源名称(DSN)(在上一个语句中设置)。在项目#2下,输入mysql的用户名和密码。在项目#3下,选择数据库。
点击测试连接以确保一切正常。
然后,单击“数据链接属性”对话框中的“确定”按钮。
选择表名并单击下一步按钮
现在点击完成按钮。 数据导入向导已完成最后一步。现在,您必须将数据导入现有工作表或新工作表。
现在按确定按钮。你的mysql数据将在excel文件中。最终回复看起来像这样。
答案 1 :(得分:4)
我正在加入@Anil Chahal答案:
按照@Anil Chahal的描述进行配置后,可以使用以下代码将数据从MySql提取到Excel中。
Function runQuery()
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Set cn = CreateObject("ADODB.Connection")
'Set your DB particulars
strConnection = "Data Source=MySQLExcel;Driver={MySQL ODBC 5.5.25a Driver};Server=" & _
"localhost" & ";Database=" & "your-db-name" & _
";Uid=" & "your-user-name" & ";Pwd=" & "your-password" & ";"
cn.Open strConnection
'Set your MySql query, i used "Select" query
strSql = "SELECT * from Table-Name;"
Set rs = cn.Execute(strSql)
'In case of "Select query" set your range to show records
'In case of "insert/edit/delete query" exclude next two lines
Worksheets("SearchResults").Range("a4:xfd1048576").ClearContents
Range("b4").CopyFromRecordset rs
'close the connection
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
结束功能
答案 2 :(得分:0)
我使用DAO连接Excel(2007)和我的数据库(通常是MS Access)。
为此,您需要:
将Microsoft DAO 3.6对象库添加到VBAProject引用(即工具─►引用)。
代码看起来像这样:
Sub MySub()
Set Db = OpenDatabase("C:\MyDB.mdb")
Set rst = Db.OpenRecordset(" SELECT * FROM MyTable")
' output
Sheets.Add
With ActiveSheet.Cells(2, 1)
rec_QTY = .CopyFromRecordset(rst)
End With
rst.Close
Db.Close
End Sub
或者如果您想执行特定命令:
Sub MySub_single_command()
Set Db = OpenDatabase("C:\MyDB.mdb")
Db.Execute (" DELETE * FROM MyTable;")
Db.Close
End Sub
欢呼声, 麦克