介绍
这篇文章主要介绍了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 nullthinkphp中怎样使用PHPExcel导入Excel