从Excel电子表格input数据到数据库?

我正在寻找一种巧妙的方法,从Excel电子表格中提取500多行数据,并将其input到我的数据库中。

电子表格就是这样的

我的表'tbl_foot_teams'被设置为

id | 名字| 评分

很简单,我需要input从电子表格的两列到数据库字段名称和评级。

有没有有效的方法来实现这一点? 单独而言,这将花费我一个荒谬的时间!

谢谢

将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 

另外,请查看dbForge Studio for MySQL中的GUI 数据导入工具 (Excel或CSV格式)。

在phpmyadmin中,您有一个从Excel导入选项。
如果您还没有,可以从CSV导入,所以只需将电子表格转换为CSV。
如果你没有以上任何一个,你可以写一个PHP函数,打开一个文本文件,按行分解然后按值分解

如果我们正在讨论50行,则可以在电子表格中轻松创build新列,并使用公式将值连接到插入语句。 就像是:

= concat(“insert into tbl_foot_teams(name,rating)values(”,$ b8,“…

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

你没有指定你正在使用的数据库,但是一个简单的方法就是把这个电子表格导出为一个csv文件,然后用mysqlimport导入到MySQL。

这在用户Philippe Jausions的这个MySQL页面的注释中有所描述:

如果您是许多人在MS-Windows命令/ DOS提示符下使用mysqlimport将CSV文件导入到MySQL中的人之一,请尝试以下操作:

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

之间引号“和反斜杠\它真的可以给你一个很难在Windows下find适当的组合…

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

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

如果你的字段是(可选地)用双引号括起来的,并且它们本身在值内加倍(例如,双引号“”= 1双引号“),那么也可以使用–fields-escaped-by =默认)和NOT –fields-escaped-by =“”“

从Excel工作结束,您可以使用ADO,例如Excel VBA:写入到mysql数据库

 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 

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

  • 在PostgreSQL中导入CSV文件
  • 将CSV导入Oracle表
  • MySQL 5.1 LOAD DATA INFILE语法
  • 导入CSV文件到MSSQL

您可以使用像Python这样的编程语言,并使用一个库,例如Excel电子表格阅读库 ,然后使用另一个库来连接SQL数据库 。

您连接到数据,加载Excel文件,并循环通过每一行,并提取您想要的任何列数据。 然后你拿这个数据并执行INSERT语句。

如果您在服务器上安装了phpMyAdmin ,则可以使用“从CSV导入”选项,但您首先必须将Excel电子表格重新保存为CSV(逗号分隔值)文件。