从Excel电子表格输入数据到数据库?

时间:2011-10-11 09:21:05

标签: mysql excel

我正在寻找一种从excel电子表格中提取500多行数据的聪明方法,然后输入我的数据库。

电子表格与this

类似

我的表'tbl_foot_teams'设为

id |名字|评价

很简单,我需要输入从电子表格中获取两列到数据库字段名称和评级。

有没有有效的方法来实现这一目标? 单独来说,这将花费我可笑的时间!

由于

6 个答案:

答案 0 :(得分:2)

将Excel文件另存为CSV并使用LOAD DATA INFILE命令导入数据。

您的Excel文件没有id字段。将表中的id字段设置为AUTO_INCREMENT,并使用如下命令 -

LOAD DATA INFILE 'file_name.csv' INTO TABLE tbl_foot_teams
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
-- IGNORE 1 LINES -- if csv file has column headers
(name, rating)
SET id = NULL; -- this will set unique value for each row

另请参阅Data Import tool中的GUI dbForge Studio for MySQL(Excel或CSV格式)。

答案 1 :(得分:0)

在phpmyadmin中,您有一个从Excel导入选项 如果您没有,则可以从CSV导入,因此只需将电子表格转换为CSV即可 如果你没有上述内容,你可以编写一个php函数打开一个文本文件,按行爆炸然后按值爆炸

答案 2 :(得分:0)

如果我们讨论的是50行,您可以在电子表格上轻松创建一个新列,并使用公式将值与插入语句连接起来。类似的东西:

= concat(“插入tbl_foot_teams(名称,评级)值(”,$ b8,“......

然后,复制粘贴计算数据库中的公式文本结果。

答案 3 :(得分:0)

您没有指定您正在使用的数据库,但使用MySQL执行此操作的简单方法是将电子表格导出为csv文件,然后使用mysqlimport导入MySQL。

来自用户Philippe Jausions的评论this MySQL page中描述了这一点:

  

如果您是尝试导入CSV文件的众多人之一   MySQL在MS-Windows命令/ DOS提示符下使用mysqlimport,试试吧   以下内容:

mysqlimport --fields-optionally-enclosed-by=""" --fields-terminated-by=, --lines-terminated-by="\r\n" --user=YOUR_USERNAME --password YOUR_DATABASE YOUR_TABLE.csv
     

在引号“和反斜杠之间\它真的可以给你带来困难   在Windows下找到合适的组合......

     

我通常从包含该文件夹的文件夹中运行此命令   YOUR_TABLE.csv文件。

     

如果.csv文件中有一个名称为列或标题的标题   其他“垃圾”中,只需添加--ignore-lines = X即可跳过第一个X.   行(即--ignore-lines = 1跳过1行)

     

如果您的字段(可选)用双引号括起来“和”   它们本身在一个值内加倍(即双倍双引号“”=   1双引号“)然后也使用--fields-escaped-by = \(默认)和   NOT --fields-escaped-by =“”“

答案 4 :(得分:0)

转换为CSV文件后,您可以导入任何支持从CSV文件(MySQL,PostgreSQL等)导入的数据库,但您必须从命令行执行此操作:

您可以使用Python之类的编程语言,并为其使用库,例如​​Excel spreadsheet reading library,然后使用另一个library for interfacing with your SQL database

您连接到数据,加载Excel文件,并遍历每一行并提取您想要的任何列数据。然后,您获取该数据并执行INSERT语句。

如果您在服务器上安装了phpMyAdmin,则可以使用the Import from CSV option,但首先必须将Excel电子表格重新保存为CSV(逗号分隔值)文件。 / p>

答案 5 :(得分:0)

在Excel端工作,您可以使用ADO,例如Excel VBA: writing to mysql database

Dim cn As ADODB.Connection

''Not the best way to get the name, just convenient for notes
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")

''For this to work, you must create a DSN and use the name in place of 
''DSNName, however, you can also use the full connection string
strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " _
& "Select AnyField As NameOfMySQLField FROM [Sheet1$];"

cn.Execute strSQL
相关问题