这篇文章主要介绍了关于phpexcel 导入excel数据的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
一:使用composer下载 phpoffice/phpexcel 或者直接下载安装包
composer require phpoffice/phpexcel
二
1:导入数据
原理:读取文件,获取文件的最大行,最大列。然后组装数据,导入数据库。
立即学习“PHP免费学习笔记(深入)”;
注意:如果你的Excel文件是加密的话是读取不了的,我真的在这上面浪费了很多时间,如果有谁知道如何解决,麻烦告知一二谢谢。
我们来看看如何具体实现

实现方法
public static function importExcel($file = '', $sheet = 0)
{
$file = iconv("utf-8", "gb2312", $file); //转码
if (empty($file) OR !file_exists($file)) {
die('file not exists!');
}
$objRead = new PHPExcel_Reader_Excel2007(); //建立reader对象
if (!$objRead->canRead($file)) {
$objRead = new PHPExcel_Reader_Excel5();
if (!$objRead->canRead($file)) {
die('No Excel!');
}
}
$cellName = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI',
'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ']; $obj = $objRead->load($file); //建立excel对象
$currSheet = $obj->getSheet($sheet); //获取指定的sheet表
$columnH = $currSheet->getHighestColumn(); //取得最大的列号
$columnCnt = array_search($columnH, $cellName);
$rowCnt = $currSheet->getHighestRow(); //获取总行数
$data = [];
for ($_row = 1; $_row <= $rowCnt; $_row++) { //读取内容
for ($_column = 0; $_column <= $columnCnt; $_column++) {
$cellId = $cellName[$_column] . $_row;
$cellValue = $currSheet->getCell($cellId)->getValue();
$data[$_row][$_column] = $cellValue;
}
} $return_data = [];
foreach ($data as $k => $v) {
if ($k > 1) {
$test = array_combine($data[1], $data[$k]);
array_push($return_data, $test);
}
}
return $return_data;
}//精简版
public static function importExcel($file = '', $sheet = 0)
{ $file = iconv("utf-8", "gb2312", $file); //转码
if (empty($file) OR !file_exists($file)) {
die('file not exists!');
} $objRead = new PHPExcel_Reader_Excel2007(); //建立reader对象
if (!$objRead->canRead($file)) {
$objRead = new PHPExcel_Reader_Excel5();
if (!$objRead->canRead($file)) {
die('No Excel!');
}
}
$obj = $objRead->load($file); //建立excel对象
$data =$obj->getSheet($sheet)->toArray();//获取为数组
$return_data = [];
foreach ($data as $k => $v) {
if ($k > 0) {
$test = array_combine($data[0], $data[$k]);
array_push($return_data, $test);
}
}
return $return_data;
}
注意如果文件过大,PHP读取会过长,我们可以设置。
set_time_limit(0);//0代表永久
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上就是PHPExcel 导入Excel数据的方法的详细内容,更多请关注php中文网其它相关文章!
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号