一:使用composer下载 phphtml' target='_blank'>office/phpexcel 或者直接下载安装包
composer require phpoffice/phpexcel
二
1:导入数据
原理:读取文件,获取文件的最大行,最大列。然后组装数据,导入数据库。
注意:如果你的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 !
相关推荐:
PHP Excel导入数据到MySQL数据库的方法
php 批量去除项目文件bom头的方法
以上就是PHPExcel 导入Excel数据的方法的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答