ThinkPHP3 使用 PHPExcel 1.8 导入数据到数据库
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 文件数据导入数据库。
原文地址: https://www.cveoy.top/t/topic/oBNb 著作权归作者所有。请勿转载和采集!