当前位置:首页 > PHP

php实现excel导入数据库

2026-01-29 00:13:35PHP

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

准备工作

确保服务器已安装PHPExcel库或PhpSpreadsheet(PHPExcel的后续版本)。可通过Composer安装:

composer require phpoffice/phpspreadsheet

读取Excel文件

使用PhpSpreadsheet加载Excel文件并读取数据:

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

$inputFileName = 'path/to/your/file.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$worksheet = $spreadsheet->getActiveSheet();

处理数据

获取工作表数据并转换为数组:

$rows = [];
foreach ($worksheet->getRowIterator() as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);
    $rowData = [];
    foreach ($cellIterator as $cell) {
        $rowData[] = $cell->getValue();
    }
    $rows[] = $rowData;
}

数据库连接

建立数据库连接(以MySQL为例):

$dbHost = 'localhost';
$dbUser = 'username';
$dbPass = 'password';
$dbName = 'database';
$conn = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

数据导入

遍历数据并插入数据库:

// 假设第一行是标题,从第二行开始导入
for ($i = 1; $i < count($rows); $i++) {
    $sql = "INSERT INTO your_table (column1, column2, column3) 
            VALUES ('" . $conn->real_escape_string($rows[$i][0]) . "', 
                    '" . $conn->real_escape_string($rows[$i][1]) . "', 
                    '" . $conn->real_escape_string($rows[$i][2]) . "')";
    if (!$conn->query($sql)) {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
$conn->close();

注意事项

  • 文件上传需添加表单验证和安全处理
  • 大数据量导入建议分批次处理
  • 考虑使用事务确保数据完整性
  • 添加适当的错误处理和日志记录

替代方案

对于简单需求,可考虑使用CSV格式替代Excel:

php实现excel导入数据库

$file = fopen('data.csv', 'r');
while (($line = fgetcsv($file)) !== false) {
    // 处理CSV行数据
}
fclose($file);

性能优化

  • 使用预处理语句(Prepared Statements)
  • 批量插入代替单条插入
  • 关闭自动提交模式
  • 考虑使用LOAD DATA INFILE(MySQL特有)

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

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 // 创建…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php数组实现

php数组实现

PHP 数组的基本实现 PHP 数组是一种非常灵活的数据结构,可以存储多个值,并且支持多种类型的键(整数或字符串)。PHP 数组实际上是有序映射(ordered map),可以看作是列表(vector…