介绍
如何在ThinkPHP中利用PHPExcel对Excel数据进行导入导出?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
具体操作步骤如下:
(一)导入Excel
第一,在前台html页面进行上传文件:如:
& lt; form 方法=皃ost", action=皃hp文件“,enctype=岸嗖糠?form-data"比; ,& lt; h4>导入Excel表:& lt;/h4> & lt; input 类型=癴ile", name=癴ile_stu",/比; ,& lt; input 类型=皊ubmit",价值=https://www.yisu.com/zixun/暗既?/> 形式>
第二,在对应的php文件进行文件的处理
, if (!, empty (, _FILES 美元;[& # 39;file_stu& # 39;],[& # 39;名字# 39;],)), ,{ 美元,美元tmp_file =, _FILES [& # 39; file_stu& # 39;], [& # 39; tmp_name& # 39;]; ,file_types 美元;=,explode (,“干净,,_FILES 美元;[& # 39;file_stu& # 39;],[& # 39;名字# 39;],); 美元,美元file_type =, file_types [count (, file_types 美元),安康;1];/*才能判别是不是xls文件,判别是不是excel文件*/if 才能;(strtolower (, file_type 美元),!=,“xls"),,,, ,{ ,,这→美元error (, & # 39;不是Excel文件,重新上传& # 39;,); ,,} ,/*设置上传路径*/时间=美元才能savePath SITE_PATH 只& # 39;/公共/upfile/Excel/& # 39;; ,/*以时间来命名上传的文件*/时间=美元才能str date (, & # 39; Ymdhis& # 39;,),, 时间=美元才能file_name str 美元;只“!”,只file_type美元;/*才能是否上传成功*/if 才能;(!,copy (, tmp_file美元,美元savePath 只file_name 美元;)), {才能 ,,这→美元error (, & # 39;上传失败& # 39;,); ,,} ,/* *才能对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中 注才能意:这里调用执行了第三步类里面的阅读函数,把Excel转化为数组并返回给美元,再进行数据库写入 ,*/,res 美元;=,Service (, & # 39; ExcelToArray& # 39;,)→read (, savePath 美元;只file_name 美元;); ,/* 重才能要代码,解决Thinkphp M, D方法不能调用的问题, ,,如果在thinkphp中遇到M D方法失效时就加入下面一句代码 ,*/,//spl_autoload_register (, array (& # 39;认为# 39;,,& # 39;自动装载# 39;,),); ,/*对生成的数组进行数据库的写入*/,foreach (, res 美元;as  k 美元;=祝辞,v 美元), ,{ if 才能;(k 美元;!=,0), {才能 ,,data 美元;[& # 39;uid # 39;],=, v 美元;[0]; ,,data 美元;[& # 39;密码# 39;],=,sha1 (, & # 39; 111111 & # 39;,); ,,data 美元;[& # 39;电子邮件# 39;],=,v 美元;[1]; ,,data 美元;[& # 39;uname # 39;],=, v 美元;[3]; ,,data 美元;[& # 39;学院# 39;],=,v 美元;[4]; ,,result 美元;=,M (, & # 39;用户# 39;,)→add (, data 美元;); ,,if (!,因此美元), ,,{ ,,,这个→美元error (, & # 39;导入数据库失败& # 39;,); ,,} ,,} ,} }
第三:ExcelToArrary类,用来引用phpExcel并处理Excel数据的
此处注意:<强> ExcelToArrary类建在根目录下的插件/服务/ExcelToArrary.class。php中
强>
class ExcelToArrary extends 服务{ ,public function  __construct (), {/*导才能入phpExcel核心类,注意,:你的路径跟我不一样就不能直接复制*/include_once才能(& # 39;。/Excel/PHPExcel.php& # 39;); ,}/* * *,读取excel filename 美元;路径文件名,encode 美元;返回数据的编码,默认为utf8 *以下基本都不要修改 */, public function 阅读(文件名,编码=& # 39;美元utf - 8 # 39;) { ,,objReader 美元;=,PHPExcel_IOFactory: createReader (& # 39; Excel5& # 39;),, 美元,才能objReader→setReadDataOnly(真正);, ,,objPHPExcel 美元;=,美元objReader→负载($ filename);, ,,objWorksheet 美元;=,美元objPHPExcel→getActiveSheet ();, 美元,美元highestRow =, objWorksheet→getHighestRow ();, 美元,美元highestColumn =, objWorksheet→getHighestColumn ();, ,highestColumnIndex 美元;=,PHPExcel_Cell: columnIndexFromString (highestColumn美元),, ,数组,excelData 美元;=,();, ,for (row 美元;=,1,,row 美元;& lt;=, highestRow;美元,美元行+ +),{, ,,for (col 美元;=,0;,col 美元;& lt;, highestColumnIndex;美元,美元坳+ +),{, ,,,,excelData美元($行][],=(字符串)objWorksheet→美元getCellByColumnAndRow (col美元,,行)→getValue (); ,,}, ,,}, return 才能;excelData;美元, ,}, 以前,}如何在ThinkPHP中利用PHPExcel对Excel数据进行导入导出