PHP如何使用PHP XLSX阅读器和Excel XLSX转换器将Excel导入MySQL
[](https://res.cloudinary.com/practicaldev/image/fetch/s--6SG8ohka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1. medium.com/max/600/0%2ABgL1kH6oowWVmshI.png) 什么是XLSX XLSX
[](https://res.cloudinary.com/practicaldev/image/fetch/s--6SG8ohka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1. medium.com/max/600/0%2ABgL1kH6oowWVmshI.png)
什么是XLSX
XLSX 是一种用于创建 Excel 电子表格的文件格式。它最初是由 Microsoft 在 Excel 2007 中引入的。它是基于 XML 的,这使得在应用程序之间传输数据变得更加容易。
XLSX 文件以单元格的形式将数据存储在工作表中。单元格包含在行和列中,这些行和列可以具有单元格数据的多个属性,如样式、格式、对齐方式等。
XLSX 实际上是一个简单的 ZIP 存档。它包含多个 XML 文件,其中包含电子表格属性的所有信息。
在PHP中解析XLSX
有多种方法可以用 PHP 解析 XLSX。如上所述,XLSX 文件是基于 XML 的 ZIP 存档。
您只需提取 ZIP 文件内容文件并使用任何 XML 解析器对其进行解析。但是使用现成的 XLSX 解析器更容易,因为它可能包含更多功能。很少有流行的包可用于使用 PHP 解析 XLSX:
1.电子表格\Excel\阅读器
2.PHPExcel
3.SimpleXLSX
在本文中,我将更多地关注SimpleXLSX 包以及如何使用它来解析 XLSX 文件并将其数据导入 MySQL 数据库。
使用 SimpleXLSX 包,您可以从电子表格中以行的形式获取数据。您可以将这些信息用于您自己的目的。
MySQL中导入XLSX的方法
由于 XLSX 文件包含多个文件,因此无法直接导入 MySQL。因此推荐的方法是将 XLSX 文件转换为 CSV,然后将其导入数据库。
还有一个在线工具可以用于此。您只需上传 XLSX 文件,它就会为其创建插入语句。
还有很多桌面软件,例如Excel2MySQL、Navicat、MySQL for Excel、Mr. Data Converter 等。您也可以使用 PHP 中的 XLSX 解析器来执行此操作。在下一节中,我将详细介绍该方法。
通过 PHP 在 MySQL 中导入 XLSX
正如我上面提到的,您可以使用用 PHP 编写的 XLSX 解析器将 XLSX 文件数据导入 MySQL 数据库。您可能想知道,当有其他更简单的方法可以将 XLSX 导入 MySQL 数据库时,为什么还要麻烦使用解析器。
这种方法有很多用途,包括自动将给定用户提供的 XLSX 文件导入数据库。这可以通过多种方式使用 SimpleXLSX 来完成。
第一种方法是在 PHP 中解析 XLSX 文件,然后将其更改为 CSV 并在 MySQL 中导入,可以使用类似于下面的代码来完成:
<?php
include 'simplexlsx.class.php';
$xlsx = new SimpleXLSX( 'countries_and_population.xlsx' );
$fp = fopen( 'file.csv', 'w');
foreach( $xlsx->rows() as $fields ) {
fputcsv( $fp, $fields);
}
fclose($fp);
进入全屏模式 退出全屏模式
使用上面的代码,您可以将 XLSX 文件解析为 CSV 文件,然后您可以轻松地将 CSV 文件导入 MySQL 数据库。
现在执行此操作的另一种方法是将 XLSX 文件解析为数组并使用 mysqli 或 PDO 扩展名将其导入数据库。您可以使用与以下类似的代码来执行此操作:
<?php
include 'simplexlsx.class.php';
$xlsx = new SimpleXLSX( 'countries_and_population.xlsx' );
try {
$conn = new PDO( "mysql:host=localhost;dbname=mydb", "user", "pass");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$stmt = $conn->prepare( "INSERT INTO countries_and_population (rank, country, population, date_of_estimate, powp) VALUES (?, ?, ?, ?, ?)");
$stmt->bindParam( 1, $rank);
$stmt->bindParam( 2, $country);
$stmt->bindParam( 3, $population);
$stmt->bindParam( 4, $date_of_estimate);
$stmt->bindParam( 5, $powp);
foreach ($xlsx->rows() as $fields)
{
$rank = $fields[0];
$country = $fields[1];
$population = $fields[2];
$date_of_estimate = $fields[3];
$powp = $fields[4];
$stmt->execute();
}
进入全屏模式 退出全屏模式
下载 SimpleXLSX 包
解析 XLSX 文件相当容易。 SimpleXLSX 包提供了一种简单的方法来读取和转换任何 XLSX 文件,因此可以以您的 PHP 应用程序需要的任何方式对其进行处理,甚至可以将数据插入到 MySQL 数据库中。
您可以下载ZIP 格式的 SimpleXLSX 包或使用 composer 工具安装它,说明在下载页面中提供。
与其他可以从这些信息中受益的 PHP 开发人员分享这篇文章。如果您有任何问题,请在下面发表评论
更多推荐
所有评论(0)