📜  使用 PHPExcel 库读取 Excel 文件并将数据传输到数据库 - PHP (1)

📅  最后修改于: 2023-12-03 15:36:33.053000             🧑  作者: Mango

使用 PHPExcel 库读取 Excel 文件并将数据传输到数据库 - PHP

简介

在 PHP 的开发中,经常需要读取 Excel 文件并将其中的数据存储到数据库中。而 PHPExcel 是一个开源的 PHP 库,提供了读写 Excel 文件的能力。本文将介绍使用 PHPExcel 库读取 Excel 文件并将数据传输到数据库的步骤。

环境

在开始本教程之前,需要确保您已经安装了 PHP 环境,并且已经下载并安装了 PHPExcel 库。

步骤
步骤一:读取 Excel 文件

在使用 PHPExcel 库读取 Excel 文件之前,我们需要确定 Excel 文件的格式。如果您的 Excel 文件是 XLS 格式,可以使用 PHPExcel_Reader_Excel5 类进行读取;如果是 XLSX 格式,则需要使用 PHPExcel_Reader_Excel2007 类。以下是示例代码:

require_once 'PHPExcel/PHPExcel.php';

$filename = 'example.xlsx';
$reader = PHPExcel_IOFactory::createReaderForFile($filename);
$worksheet = $reader->load($filename);
$rows = $worksheet->getHighestRow();
$columns = PHPExcel_Cell::columnIndexFromString($worksheet->getHighestColumn());

for ($row = 1; $row <= $rows; $row++) {
    for ($col = 0; $col < $columns; $col++) {
        $cellValue = $worksheet->getCellByColumnAndRow($col, $row)->getValue();
        echo $cellValue;
    }
}

以上代码中,我们首先引入了 PHPExcel 库,并指定了要读取的 Excel 文件的文件名。

接着,我们使用 PHPExcel_IOFactory 类中的 createReaderForFile() 方法创建一个 Excel 读取器,并使用 load() 方法加载 Excel 文件。在我们获得了工作表之后,我们使用 getHighestRow() 和 getHighestColumn() 方法来获取表格的行数和列数。

最后,我们利用 for 循环从工作表中逐行逐列地得到单元格的值,并对其进行处理。

步骤二:将数据插入到数据库中

一旦我们已经从 Excel 文件中读取了所有的数据,我们可以将这些数据插入到数据库中。以下是一个大致的步骤:

  1. 在 PHP 中打开一个数据库连接
  2. 循环遍历 Excel 文件中的每一行,并将其中的数据插入到数据库表中
  3. 断开数据库连接

以下是示例代码:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

for ($row = 1; $row <= $rows; $row++) {
    $sql = "INSERT INTO myTable (name, age, sex) VALUES (?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("sis", $name, $age, $sex);

    $name = $worksheet->getCellByColumnAndRow(0, $row)->getValue();
    $age = $worksheet->getCellByColumnAndRow(1, $row)->getValue();
    $sex = $worksheet->getCellByColumnAndRow(2, $row)->getValue();

    $stmt->execute();
    $stmt->close();
}

$conn->close();

以上代码中,我们首先定义了数据库连接的服务器名、用户名、密码和数据库名,并创建一个 mysqli 对象来代表数据库连接。在成功建立连接之后,我们使用 for 循环遍历 Excel 文件中的每一行,并将每一行的数据插入到数据库表中。

在每一次插入操作之前,我们都会调用 bind_param() 方法绑定相关的参数,包括姓名(name)、年龄(age)和性别(sex)。这些参数对于我们在 Excel 文件的每一行中从左到右依次读取到的数据进行填充。

最后,我们断开了数据库的连接,完成了整个操作。

结论

通过使用 PHPExcel 库,我们可以很容易地读取 Excel 文件的数据,并将这些数据插入到数据库中。这是在 PHP 开发中非常有用的一项技能。希望本文对您有所帮助!