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 加群备注 “博客园”
  • 相关阅读:
    1_Flask开启debug
    29_使用celery发送短信
    00_celery介绍(处理耗时任务)
    28_django限制请求方法装饰器
    27_扩展User模型
    05-3_单链表的实现
    05-2_单向链表
    05-1_链表的定义
    04-2_Python中的线性表
    04-1_线性表的操作
  • 原文地址:https://www.cnblogs.com/HoverM/p/7787815.html
Copyright © 2011-2022 走看看