ThinkPHP3 使用 PHPExcel 1.8 导入数据到数据库

本教程将介绍如何在 ThinkPHP3 环境下使用 PHPExcel 1.8 库将 Excel 文件数据导入数据库。

1. 下载并引入 PHPEXCEL 库

从官网 https://phpexcel.codeplex.com/releases/view/118190 下载最新版的 PHPEXCEL 库,并解压到项目目录下。在需要使用的控制器中引入 PHPExcel.php 文件:

require_once 'YOUR_PATH/PHPExcel.php';

2. 读取 Excel 文件数据

// 读取 Excel 文件
$file = $_FILES['excel_file']['tmp_name'];
$excelReader = PHPExcel_IOFactory::createReaderForFile($file);
$excelObj = $excelReader->load($file);

// 获取 Excel 中的第一个工作表
$worksheet = $excelObj->getSheet(0);

// 获取最大行数和列数
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();

// 循环读取每个单元格的数据
for ($row = 1; $row <= $highestRow; $row++){
    $rowData = $worksheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, null, true, false);
    // 将数据插入到数据库
    // ...
}

3. 插入数据库

在读取 Excel 数据的循环中,将每一行数据插入到数据库中。

// 将数据插入到数据库
$data = array(
    'field1' => $rowData[0][0],
    'field2' => $rowData[0][1],
    // ...
);
$Model = M('table_name');
$Model->add($data);

完整的代码示例

public function importExcel(){
    if (!empty($_FILES)){
        // 读取 Excel 文件
        $file = $_FILES['excel_file']['tmp_name'];
        $excelReader = PHPExcel_IOFactory::createReaderForFile($file);
        $excelObj = $excelReader->load($file);

        // 获取 Excel 中的第一个工作表
        $worksheet = $excelObj->getSheet(0);

        // 获取最大行数和列数
        $highestRow = $worksheet->getHighestRow();
        $highestColumn = $worksheet->getHighestColumn();

        // 循环读取每个单元格的数据
        for ($row = 1; $row <= $highestRow; $row++){
            $rowData = $worksheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, null, true, false);
            // 将数据插入到数据库
            $data = array(
                'field1' => $rowData[0][0],
                'field2' => $rowData[0][1],
                // ...
            );
            $Model = M('table_name');
            $Model->add($data);
        }

        $this->success('导入成功!');
    } else {
        $this->error('请选择要导入的文件!');
    }
}

注意:

  • 将代码中的 'YOUR_PATH' 替换为实际的 PHPExcel 库路径。
  • 'table_name' 替换为需要导入数据的数据库表名。
  • 'field1', 'field2' 等替换为数据库表中的实际字段名。
  • 确保数据库连接配置正确。
  • 根据实际情况调整代码逻辑。

希望本教程能帮助您在 ThinkPHP3 环境下轻松实现 Excel 文件数据导入数据库。

ThinkPHP3 使用 PHPExcel 1.8 导入数据到数据库

原文地址: https://www.cveoy.top/t/topic/oBNb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录