前面刚刚写过 利用phpexcel 导出超过26列的数据,这里一些之前的准备就不说了先,就是吧phpexcel放到项目指定文件夹,并进行引入。
言归正传,直接上代码吧 首先是简单的html部分 就2句话。如下
<form action="{:U('Pro/upload')}" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="导入"/> </form> 然后下面部分是核心 就是后台的导入:
public function upload(){ $upload=new \Think\Upload(); //实例化上传类 $upload->maxSize = 3145728; //设置附件上传大小 $upload->exts = array('xlsx','xls'); //设置附件上传类型 $upload->rootPath = './Uploads/'; //设置附件上传根目录(没有则需手动新建) $upload->savePath = ''; //设置附件上传(子)目录 //上传文件 $info = $upload->upload(); if(!$info){ //上传错误提示错误信息 $this->error($upload->getError()); }else{ //上传成功获取上传文件信息 foreach($info as $file){ //echo $file['savepath'].$file['savename']; //这里的路径为网站根目录下Uploads/2016-02-19/56c7056f732ff.xlsx $filePath="Uploads/".$file['savepath'].$file['savename']; //等价于 //$filePath = __ROOT__."Uploads/" .$file['savepath'].$file['savename']; } echo "<h3>".$filePath."文件上传成功!</h3><p>"; //上传成功则开始导入到mysql中 $result=$this->importExcel($filePath); echo $result['message']; } } public function importExcel($file){ //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 import("Org.Util.PHPExcel"); import("Org.Util.PHPExcel.Writer.Excel5"); import("Org.Util.PHPExcel.IOFactory.php"); if(!file_exists($file)){ return array("error"=>0,'message'=>'file not found!'); } vendor("PHPExcel.Classes.PHPExcel.IOFactory"); //出现:Class 'Admin\Controller\PHPExcel_IOFactory' not found //注意这儿加了一个"\"表示调用公共空间,也可以理解为顶层 //$objReader = \PHPExcel_IOFactory::createReader('Excel5'); //获取excel文件:获取Excel第1张表即(Sheet1) $objPHPExcel= \PHPExcel_IOFactory::load($file); $objPHPExcel->setActiveSheetIndex(0); $sheet1=$objPHPExcel->getSheet(0); //获取行数,并把数据读取出来$data数组 $rowCount=$sheet1->getHighestRow();//excel行数 $data=array(); for($i=2;$i<=$rowCount;$i++){ $item['LieferantNr']=$sheet1->getCellByColumnAndRow(1,$i)->getValue(); $item['DerProdukt1']=$sheet1->getCellByColumnAndRow(2,$i)->getValue(); $item['DerProdukt2']=$sheet1->getCellByColumnAndRow(3,$i)->getValue(); $item['ProduktaufChinesisch']=$sheet1->getCellByColumnAndRow(4,$i)->getValue(); $item['ArtikelNr']=$sheet1->getCellByColumnAndRow(5,$i)->getValue(); $item['EAN1']=$sheet1->getCellByColumnAndRow(6,$i)->getValue(); $item['EAN2']=$sheet1->getCellByColumnAndRow(7,$i)->getValue(); $item['EAN3']=$sheet1->getCellByColumnAndRow(8,$i)->getValue(); $item['EAN4']=$sheet1->getCellByColumnAndRow(9,$i)->getValue(); $item['Marken']=$sheet1->getCellByColumnAndRow(10,$i)->getValue(); $item['Kategorie']=$sheet1->getCellByColumnAndRow(11,$i)->getValue(); $item['Unterkategorie']=$sheet1->getCellByColumnAndRow(12,$i)->getValue(); $item['Spezifikation']=$sheet1->getCellByColumnAndRow(13,$i)->getValue(); $item['St_Einheit']=$sheet1->getCellByColumnAndRow(14,$i)->getValue(); $item['SchichtaufPalette']=$sheet1->getCellByColumnAndRow(15,$i)->getValue(); $item['Einheit_Palette']=$sheet1->getCellByColumnAndRow(16,$i)->getValue(); $item['St_palette']=$sheet1->getCellByColumnAndRow(17,$i)->getValue(); $item['Gewicht_netto']=$sheet1->getCellByColumnAndRow(18,$i)->getValue(); $item['Gewicht_brutto']=$sheet1->getCellByColumnAndRow(19,$i)->getValue(); $item['Gewicht_Palette']=$sheet1->getCellByColumnAndRow(20,$i)->getValue(); $item['Steuersatz']=$sheet1->getCellByColumnAndRow(21,$i)->getValue(); $item['Preis_brutto']=$sheet1->getCellByColumnAndRow(22,$i)->getValue(); $item['Offizielle_Preis']=$sheet1->getCellByColumnAndRow(23,$i)->getValue(); $item['Rabatt']=$sheet1->getCellByColumnAndRow(24,$i)->getValue(); $item['Preis_netto']=$sheet1->getCellByColumnAndRow(25,$i)->getValue(); $item['Preis1']=$sheet1->getCellByColumnAndRow(26,$i)->getValue(); $item['Preis2']=$sheet1->getCellByColumnAndRow(27,$i)->getValue(); $item['Preis3']=$sheet1->getCellByColumnAndRow(28,$i)->getValue(); $item['Stock']=$sheet1->getCellByColumnAndRow(29,$i)->getValue(); $item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(30,$i)->getValue(); $item['Sonstige_Kosten']=$sheet1->getCellByColumnAndRow(31,$i)->getValue(); $item['Gesamtkosten_netto']=$sheet1->getCellByColumnAndRow(32,$i)->getValue(); $item['Bemerkung1']=$sheet1->getCellByColumnAndRow(33,$i)->getValue(); $item['Bemerkung2']=$sheet1->getCellByColumnAndRow(34,$i)->getValue(); $item['Bemerkung3']=$sheet1->getCellByColumnAndRow(35,$i)->getValue(); $item['Bemerkung4']=$sheet1->getCellByColumnAndRow(36,$i)->getValue(); $item['Bemerkung5']=$sheet1->getCellByColumnAndRow(37,$i)->getValue(); $item['Bemerkung6']=$sheet1->getCellByColumnAndRow(38,$i)->getValue(); $item['Bemerkung7']=$sheet1->getCellByColumnAndRow(39,$i)->getValue(); $item['Bemerkung8']=$sheet1->getCellByColumnAndRow(40,$i)->getValue(); $item['Bemerkung9']=$sheet1->getCellByColumnAndRow(41,$i)->getValue(); $item['Bemerkung10']=$sheet1->getCellByColumnAndRow(42,$i)->getValue(); $item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(43,$i)->getValue(); $item['userid']='1'; $item['addtime']=time(); $data[]=$item; } $success=0; $error=0; $sum=count($data); foreach($data as $k=>$v){ if(M('pro')->data($v)->add()){ $success++; }else{ $error++; } } echo "<h3>总{$sum}条,成功{$success}条,失败{$error}条</h3>"; return array("error"=>0,'message'=>'import is succussful!'); }
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录