zoukankan      html  css  js  c++  java
  • thinkphp 3.2利用phpexcel 导入 超过26列的数据

    前面刚刚写过 利用phpexcel 导出超过26列的数据,这里一些之前的准备就不说了先,就是吧phpexcel放到项目指定文件夹,并进行引入(如果不会可以看下我的phpexcel导出那篇文章)

    言归正传,直接上代码吧 首先是简单的html部分 就2句话。如下

    <form action="{:U('Pro/upload')}" method="post" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit" value="导入"/>
    </form>

    然后下面部分是核心 就是后台的导入:
      1    public function upload(){
      2 
      3         $upload=new ThinkUpload();                                //实例化上传类
      4         $upload->maxSize   =     3145728;                           //设置附件上传大小
      5         $upload->exts      =     array('xlsx','xls');               //设置附件上传类型
      6         $upload->rootPath  =      './Uploads/';                     //设置附件上传根目录(没有则需手动新建)
      7         $upload->savePath  =      '';                               //设置附件上传(子)目录
      8         //上传文件
      9         $info   =   $upload->upload();
     10         if(!$info){                                                 //上传错误提示错误信息
     11           $this->error($upload->getError());
     12 
     13         }else{                                                      //上传成功获取上传文件信息
     14        foreach($info as $file){
     15         //echo $file['savepath'].$file['savename'];
     16         //这里的路径为网站根目录下Uploads/2016-02-19/56c7056f732ff.xlsx
     17         $filePath="Uploads/".$file['savepath'].$file['savename'];
     18         //等价于
     19         //$filePath = __ROOT__."Uploads/" .$file['savepath'].$file['savename'];
     20     }
     21         echo "<h3>".$filePath."文件上传成功!</h3><p>";
     22        //上传成功则开始导入到mysql中
     23         $result=$this->importExcel($filePath);
     24         echo $result['message'];
     25 }
     26 }
     27 
     28     public function importExcel($file){
     29         //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
     30         import("Org.Util.PHPExcel");
     31         import("Org.Util.PHPExcel.Writer.Excel5");
     32         import("Org.Util.PHPExcel.IOFactory.php");
     33 
     34         if(!file_exists($file)){
     35             return array("error"=>0,'message'=>'file not found!');
     36         }
     37         vendor("PHPExcel.Classes.PHPExcel.IOFactory");
     38         //出现:Class 'AdminControllerPHPExcel_IOFactory' not found
     39         //注意这儿加了一个""表示调用公共空间,也可以理解为顶层
     40         //$objReader = PHPExcel_IOFactory::createReader('Excel5');
     41         //获取excel文件:获取Excel第1张表即(Sheet1)
     42         $objPHPExcel= PHPExcel_IOFactory::load($file);
     43         $objPHPExcel->setActiveSheetIndex(0);
     44         $sheet1=$objPHPExcel->getSheet(0);
     45         //获取行数,并把数据读取出来$data数组
     46         $rowCount=$sheet1->getHighestRow();//excel行数
     47         $data=array();
     48         for($i=2;$i<=$rowCount;$i++){
     49 
     50             $item['LieferantNr']=$sheet1->getCellByColumnAndRow(1,$i)->getValue();
     51             $item['DerProdukt1']=$sheet1->getCellByColumnAndRow(2,$i)->getValue();
     52             $item['DerProdukt2']=$sheet1->getCellByColumnAndRow(3,$i)->getValue();
     53             $item['ProduktaufChinesisch']=$sheet1->getCellByColumnAndRow(4,$i)->getValue();
     54             $item['ArtikelNr']=$sheet1->getCellByColumnAndRow(5,$i)->getValue();
     55             $item['EAN1']=$sheet1->getCellByColumnAndRow(6,$i)->getValue();
     56             $item['EAN2']=$sheet1->getCellByColumnAndRow(7,$i)->getValue();
     57             $item['EAN3']=$sheet1->getCellByColumnAndRow(8,$i)->getValue();
     58             $item['EAN4']=$sheet1->getCellByColumnAndRow(9,$i)->getValue();
     59             $item['Marken']=$sheet1->getCellByColumnAndRow(10,$i)->getValue();
     60             $item['Kategorie']=$sheet1->getCellByColumnAndRow(11,$i)->getValue();
     61             $item['Unterkategorie']=$sheet1->getCellByColumnAndRow(12,$i)->getValue();
     62             $item['Spezifikation']=$sheet1->getCellByColumnAndRow(13,$i)->getValue();
     63             $item['St_Einheit']=$sheet1->getCellByColumnAndRow(14,$i)->getValue();
     64             $item['SchichtaufPalette']=$sheet1->getCellByColumnAndRow(15,$i)->getValue();
     65             $item['Einheit_Palette']=$sheet1->getCellByColumnAndRow(16,$i)->getValue();
     66             $item['St_palette']=$sheet1->getCellByColumnAndRow(17,$i)->getValue();
     67             $item['Gewicht_netto']=$sheet1->getCellByColumnAndRow(18,$i)->getValue();
     68             $item['Gewicht_brutto']=$sheet1->getCellByColumnAndRow(19,$i)->getValue();
     69             $item['Gewicht_Palette']=$sheet1->getCellByColumnAndRow(20,$i)->getValue();
     70             $item['Steuersatz']=$sheet1->getCellByColumnAndRow(21,$i)->getValue();
     71             $item['Preis_brutto']=$sheet1->getCellByColumnAndRow(22,$i)->getValue();
     72             $item['Offizielle_Preis']=$sheet1->getCellByColumnAndRow(23,$i)->getValue();
     73             $item['Rabatt']=$sheet1->getCellByColumnAndRow(24,$i)->getValue();
     74             $item['Preis_netto']=$sheet1->getCellByColumnAndRow(25,$i)->getValue();
     75             $item['Preis1']=$sheet1->getCellByColumnAndRow(26,$i)->getValue();
     76             $item['Preis2']=$sheet1->getCellByColumnAndRow(27,$i)->getValue();
     77             $item['Preis3']=$sheet1->getCellByColumnAndRow(28,$i)->getValue();
     78             $item['Stock']=$sheet1->getCellByColumnAndRow(29,$i)->getValue();
     79             $item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(30,$i)->getValue();
     80             $item['Sonstige_Kosten']=$sheet1->getCellByColumnAndRow(31,$i)->getValue();
     81             $item['Gesamtkosten_netto']=$sheet1->getCellByColumnAndRow(32,$i)->getValue();
     82             $item['Bemerkung1']=$sheet1->getCellByColumnAndRow(33,$i)->getValue();
     83             $item['Bemerkung2']=$sheet1->getCellByColumnAndRow(34,$i)->getValue();
     84             $item['Bemerkung3']=$sheet1->getCellByColumnAndRow(35,$i)->getValue();
     85             $item['Bemerkung4']=$sheet1->getCellByColumnAndRow(36,$i)->getValue();
     86             $item['Bemerkung5']=$sheet1->getCellByColumnAndRow(37,$i)->getValue();
     87             $item['Bemerkung6']=$sheet1->getCellByColumnAndRow(38,$i)->getValue();
     88             $item['Bemerkung7']=$sheet1->getCellByColumnAndRow(39,$i)->getValue();
     89             $item['Bemerkung8']=$sheet1->getCellByColumnAndRow(40,$i)->getValue();
     90             $item['Bemerkung9']=$sheet1->getCellByColumnAndRow(41,$i)->getValue();
     91             $item['Bemerkung10']=$sheet1->getCellByColumnAndRow(42,$i)->getValue();
     92             $item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(43,$i)->getValue();
     93             $item['userid']='1';
     94             $item['addtime']=time();
     95             $data[]=$item;
     96         }
     97         $success=0;
     98         $error=0;
     99         $sum=count($data);
    100         foreach($data as $k=>$v){
    101             if(M('pro')->data($v)->add()){
    102                 $success++;
    103             }else{
    104                 $error++;
    105             }
    106         }
    107 
    108         echo "<h3>总{$sum}条,成功{$success}条,失败{$error}条</h3>";
    109         return array("error"=>0,'message'=>'import is succussful!');
    110     }

    注释已经标记的很详细了 再有啥问题 就直接问我吧。。 群84451248 加群备注 “博客园”
  • 相关阅读:
    XML(学习笔记)
    css样式学习笔记
    Request(对象)
    sql一些错误修改的总结
    转载(如何学习C#)
    sql server(学习笔记2 W3Cschool)
    sql sqrver(学习笔记1 W3Cschool)
    关于 flutter开发碰到的各种问题,有的已经解决有的一直没解决或者用其他方法替代
    关于 Flutter IOS build It appears that your application still contains the default signing identifier.
    关于 flutter本地化问题 The getter 'pasteButtonLabel' was called on null
  • 原文地址:https://www.cnblogs.com/HoverM/p/7787815.html
Copyright © 2011-2022 走看看