我正在寻找一种从excel电子表格中提取500多行数据的聪明方法,然后输入我的数据库。
电子表格与this
类似我的表'tbl_foot_teams'设为
id |名字|评价
很简单,我需要输入从电子表格中获取两列到数据库字段名称和评级。
有没有有效的方法来实现这一目标? 单独来说,这将花费我可笑的时间!
由于
答案 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