当前位置:首页 > PHP

php实现excel导入数据库

2026-04-03 05:58:54PHP

PHP 实现 Excel 导入数据库的方法

使用 PHPExcel 或 PhpSpreadsheet 库

PHPExcel 是一个流行的 PHP 库,用于处理 Excel 文件。虽然 PHPExcel 已停止维护,但其继任者 PhpSpreadsheet 提供了类似的功能。以下步骤展示了如何使用 PhpSpreadsheet 导入 Excel 数据到数据库。

安装 PhpSpreadsheet 库:

composer require phpoffice/phpspreadsheet

示例代码:

php实现excel导入数据库

<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

// 数据库连接
$dbHost = 'localhost';
$dbUser = 'username';
$dbPass = 'password';
$dbName = 'database_name';
$conn = new mysqli($dbHost, $dbUser, $dbPass, $dbName);

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

// 读取 Excel 文件
$inputFileName = 'path/to/your/file.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();

// 遍历行
foreach ($sheet->getRowIterator() as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);

    $data = [];
    foreach ($cellIterator as $cell) {
        $data[] = $cell->getValue();
    }

    // 插入数据库
    $sql = "INSERT INTO your_table (column1, column2, column3) VALUES (?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("sss", $data[0], $data[1], $data[2]);
    $stmt->execute();
}

$conn->close();
echo "Data imported successfully";
?>

使用 PHP 原生函数处理 CSV 文件

如果 Excel 文件可以保存为 CSV 格式,可以使用 PHP 原生函数处理。

示例代码:

php实现excel导入数据库

<?php
// 数据库连接
$conn = new mysqli('localhost', 'username', 'password', 'database_name');

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

// 打开 CSV 文件
if (($handle = fopen("path/to/your/file.csv", "r")) !== false) {
    while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        $sql = "INSERT INTO your_table (column1, column2, column3) VALUES (?, ?, ?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("sss", $data[0], $data[1], $data[2]);
        $stmt->execute();
    }
    fclose($handle);
}

$conn->close();
echo "Data imported successfully";
?>

使用第三方库 Box/Spout

Box/Spout 是一个轻量级的 PHP 库,专门用于读取和写入大型 Excel 文件。

安装 Box/Spout:

composer require box/spout

示例代码:

<?php
require 'vendor/autoload.php';

use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;

// 数据库连接
$conn = new mysqli('localhost', 'username', 'password', 'database_name');

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

$reader = ReaderEntityFactory::createXLSXReader();
$reader->open('path/to/your/file.xlsx');

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $cells = $row->getCells();
        $data = array_map(function($cell) {
            return $cell->getValue();
        }, $cells);

        $sql = "INSERT INTO your_table (column1, column2, column3) VALUES (?, ?, ?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("sss", $data[0], $data[1], $data[2]);
        $stmt->execute();
    }
}

$reader->close();
$conn->close();
echo "Data imported successfully";
?>

注意事项

  • 确保文件路径正确,且 PHP 有权限读取文件。
  • 处理大量数据时,考虑分批插入以避免内存问题。
  • 验证和清理数据以防止 SQL 注入。
  • 根据实际需求调整代码中的表名和列名。

标签: 数据库php
分享给朋友:

相关文章

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUEST_…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…