thinkphp 3.2利用phpexcel 导入 超过26列的数据

前面刚刚写过 利用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!');
        }
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论