thinkphp中怎样使用PHPExcel导入Excel

  介绍

这篇文章主要介绍了thinkphp中怎样使用PHPExcel导入Excel,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

thinkphp导入Excel的方法介绍:

开发思路

1,先把Excel文件上传到服务器

2,获取服务器Excel文件内容

3,写入数据库

一、上传Excel文件,使用PHP里自带的上传方法“\认为\上传();”,可以很方便的实现。为此我整理下使用这个方法的最简单方式

/* *   ,* TODO 上传文件方法   ,* @param  fileid 美元;形式表值单文件的名称   ,* @param  dir 美元;上传到上传目录的美元dir文件夹里   ,* @param  int  maxsize 美元;最大上传限制,默认1024000,字节   ,* @param  array  exts 美元;允许上传文件类型,默认数组(& # 39;gif # 39; & # 39; jpg # 39;, & # 39; jpeg # 39;, & # 39; bmp # 39;, & # 39; png # 39;)   ,* @return  array 返回数组,失败状态=0,成功状态=1,filepath=newspost/2014-9-9/a.jpg   ,*/function 还是(文件标识,dir美元,最大尺寸=5242880美元,美元ext=数组(& # 39;gif # 39; & # 39; jpg # 39;, & # 39; jpeg # 39;, & # 39; bmp # 39;, & # 39; png # 39;), maxwidth=430美元){   ,,,upload 美元;=,new  \认为\上传();//,实例化上传类   ,,,上传→美元maxSize ,,=,,,,,最大容量美元;//,设置附件上传大小,单位字节(微信图片限制1 m   ,,,上传→美元exts ,,,,,=,,,,, ext美元;//,设置附件上传类型   ,,,上传→美元rootPath ,=,,,,, & # 39;。/上传/& # 39;;,//,设置附件上传根目录   ,,,上传→美元savePath ,=,,,,, dir强生# 39;美元/& # 39;;,//,设置附件上传(子)目录   ,,,//,上传文件   info 美元,,,,,,=,,,美元上传→上传();      ,,,如果(! $ info),{//,上传错误提示错误信息   ,,,,,,,return 数组(状态=祝辞0,味精=祝辞上传→美元getError ());   还有,,,}{//,上传成功   ,,,,,,,return 数组(状态=祝辞1,味精=祝辞& # 39;上传成功& # 39;,filepath=祝辞美元信息[文件标识美元][& # 39;savepath& # 39;]。美元信息[文件标识美元][& # 39;savename& # 39;]);   ,,,}   }

这里默认上传到ThinkPHP入口文件索引。php所在的文件夹上传,此方法返回一个数据,状态状态=1时为成功,也建议大家在写功能模块时或做封装时,整个系统的在架构初期应该有约定,在必要的情况下返回值用数组形式,成功返回

return 数组(状态=祝辞1,data=https://www.yisu.com/zixun/> ....信息=> .....)

失败时可以返回

数组(状态→0时,信息=祝辞& # 39;可以说明出错的原因& # 39;,....)

这样用统一的方式有利于规范开发,团队协作时看代码时可以提高效率,减少思维运转,说远了,上传的方法调用方式如下:

//excel 文件   ,,,,,,,如果(!空(带有_file美元[& # 39;xls # 39;][& # 39;名字# 39;])){   ,,,,,,,,,,,上传=美元还是(& # 39;xls # 39; & # 39; tempxls& # 39;, 5242880,数组(& # 39;xls # 39; & # 39; xlsx& # 39;));   ,,,,,,,,,,,如果($上传(& # 39;状态# 39;)){   ,,,,,,,,,,,,,,,=$ $ path上传(& # 39;filepath& # 39;);   ,,,,,,,,,,,其他}{   ,,,,,,,,,,,,,,,这个美元→错误($上传(& # 39;味精# 39;]);   ,,,,,,,,,,,}   ,,,,,,,}

二,获取Excel数据

1,首先需要引入PHPExcel的类库

require_once  & # 39;模块/PHPExcel/类/PHPExcel/IOFactory.php& # 39;;

2,获取Excel第0张表即(Sheet1)

//获取Excel文件   时间=美元objPHPExcel  \ PHPExcel_IOFactory:负载(“上传/$ path");   美元objPHPExcel→setActiveSheetIndex (0);   sheet0=objPHPExcel→美元getSheet (0);

3,获取行数,并把数据读取出美元来数数据组

rowCount=sheet0→美元getHighestRow ();//excel行数   ,,,,,,,$ data=https://www.yisu.com/zixun/array ();   ($ i=2;$ i <=$ rowCount;$我+ +){   $ item['名称')=$ this -> getExcelValue (sheet0美元,”一个“。我);   $ item['性']=$ this -> getExcelValue (sheet0美元,B。我);   $ item[‘联系’]=$ this -> getExcelValue (sheet0美元,“C”。$ i);   $ item[‘备注’]=$ this -> getExcelValue (sheet0美元,“D”。我);   $ item [' addtime ']=$ this -> getExcelValue (sheet0美元,“E”。$ i);      $ data[]=美元项目;   }

三,最后保存到数据

美元成功=0;   ,,,,,,,美元错误=0;   ,,,,,,,美元金额=count ($ data);   ,,,,,,,foreach (data 美元;as  $ k=祝辞美元v) {   ,,,,,,,,,,,如果(M (& # 39; temp_area3& # 39;)→数据(v)→添加()){   ,,,,,,,,,,,,,,,美元成功+ +;   ,,,,,,,,,,,}else  {   null   null   null   null   null

thinkphp中怎样使用PHPExcel导入Excel