首先我来介绍一下如何使用 PHP 将 Excel 数据导入 MySQL 数据库。
环境准备
在进行 Excel 文件导入之前需要准备以下环境:
-
PHP 环境,推荐使用 PHP 5.2 版本及以上
-
加载并安装
PhpSpreadsheet
扩展库,可以使用 Composer 进行安装,也可手动安装 -
MySQL 数据库环境
-
Excel 文件
步骤
-
创建一个 PHP 文件,命名为 excel_to_mysql.php,作为导入脚本。
-
在脚本中引入
PhpSpreadsheet
类库,如果使用 Composer 安装,则可以使用以下代码进行引入:
require 'vendor/autoload.php';
- 连接 MySQL 数据库,创建一个名为 excel 的数据库,并在里面新建一个名为
employees
的表,表结构如下:
CREATE TABLE `employees` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 使用
PhpSpreadsheet
类库获取 Excel 文件中的数据,并将其插入到employees
表中,示例如下:
use PhpOffice\PhpSpreadsheet\IOFactory;
//加载Excel文件
$filename = 'employees.xlsx';
$inputFileType = IOFactory::identify($filename);
$reader = IOFactory::createReader($inputFileType);
// 选择Excel的工作表
$reader->setLoadSheetsOnly(["Sheet1"]);
$spreadsheet = $reader->load($filename);
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
//把数据写入到数据库
$db_host = 'localhost';
$db_username = 'root';
$db_password = '';
$db_name = 'excel';
// 连接数据库
$conn = mysqli_connect($db_host, $db_username, $db_password, $db_name);
if (!$conn) {
die("连接失败:" . mysqli_connect_error());
}
//遍历数据,插入数据到表中
foreach ($rows as $key => $row) {
//跳过第一行,因为它是标题
if ($key == 0) {
continue;
}
$name = $row[0];
$email = $row[1];
$age = $row[2];
//插入数据到表中
$sql = "INSERT INTO employees (name, email, age)
VALUES ('$name', '$email', '$age')";
if (mysqli_query($conn, $sql)) {
echo "插入成功";
} else {
echo "出错:" . mysqli_error($conn);
}
}
//关闭数据库连接
mysqli_close($conn);
示例
下面是两个示例,分别演示了如何使用 PHP 将两个不同的 Excel 文件导入到 MySQL 数据库中。
示例一:employees.xlsx
name | age | |
---|---|---|
Alice | alice@example.com | 27 |
Bob | bob@example.com | 31 |
Carol | carol@example.com | 35 |
示例二:students.xlsx
name | age | |
---|---|---|
Tom | tom@example.com | 18 |
Jerry | jerry@example.com | 19 |
William | william@example.com | 20 |
通过上述步骤和示例,你就可以成功地将 Excel 数据导入到 MySQL 数据库中了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 将excel导入mysql - Python技术站