PHPExcel导入Excel数据的方法

PHPExcel导入Excel数据的方法

内容导读

收集整理的这篇技术教程文章主要介绍了PHPExcel导入Excel数据的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2926字,纯文字阅读大概需要5分钟

内容图文

这篇文章主要介绍了关于PHPExcel 导入Excel数据的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一:使用composer下载 phpoffice/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数据的方法的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHPExcel导入Excel数据的方法全部内容,希望文章能够帮你解决PHPExcel导入Excel数据的方法所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com