如何在ThinkPHP中利用PHPExcel对Excel数据进行导入导出

  介绍

如何在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数据进行导入导出