用ThinkPHP,uploadify,upload,PHPExcel如何? 無重新整理匯入資料

來源:互聯網
上載者:User
前端HTML+JQuery 備忘Jquery需要1.x版本,不能用2.x版本

1.引入必要檔案及上傳input


  <load file="__PUBLIC__/js/jquery-1.11.3.min.js" />  <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />  <load file="__PUBLIC__/uploadify/uploadify.css" />


<input type="file" class="" id="student" name="student">

2.uploadify使用操作


 <script>  $(function(){    //ThinkPHP上傳地址    var upload = "{:U(MODULE_NAME.'/Student/upload')}";    //ThinkPHP sessionID的提交變數    //'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中進行配置,預設關閉的需要開啟    var sid = '{:session_id()}';    //匯入資料地址    var daoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"    //Amaze ui 模態框    var modal = $('#my-modal-loading');    //uploadify使用方法    $('#student').uploadify({      'swf'      : '__PUBLIC__/uploadify/uploadify.swf',      'uploader' : upload,      'buttonText' : '選擇檔案...',      'width':120,      'height':30,      'formData':{'session_id':sid},      'fileTypeExts':'*.xls',      //開始上傳彈出模態框      'onUploadStart' : function(file) {        $('#alert-content').html('正在上傳檔案');          modal.modal();        },      //上傳成功關閉模態框,並用後台函數匯入資料      'onUploadSuccess':function(file, data, response){        $('#alert-content').html('正在匯入資料');        data = eval("("+data+")");        $.ajax({          type: 'POST',          url: daoruUrl,          data: {'file':data.file},          success: function(retdata){            modal.modal('close');            if(retdata==1){              alert('匯入成功');            }else{              alert('匯入失敗');            }          },          dataType: 'json'        });      }    });  });  </script>

3、ThinkPHP控制器上傳操作:備忘需要引入Upload.class.php空間


    function upload(){        $config = array(            'maxSize'    =>    3145728,            'rootPath'   =>    './Uploads/',            'savePath'   =>    '',            'saveName'   =>    array('uniqid',''),            'exts'       =>    array('xls'),            'autoSub'    =>    true,            'subName'    =>    array('date','Ymd'),            );        $upload = new Upload($config);        // 上傳檔案         $info   =   $upload->upload();        if(!$info) {// 上傳錯誤提示錯誤資訊            $this->error($upload->getError());        }else{// 上傳成功 擷取上傳檔案資訊                       $file = $info['Filedata']['savepath'].$info['Filedata']['savename'];        }        //p($info);        $data = array(            'file'=>'./Uploads/'.$file,            );        echo json_encode($data);    }

4.匯入資料進去mysql


//匯入資料處理    function daoruHandle(){        $file = I('file');        $excelData = excel_to_mysql($file);        foreach($excelData['data'] as $row){            $data = array(                'xuehao'=>$row['xuehao'],                'xingming'=>$row['xingming'],                'xingbie'=>($row['xingbie']=='男')?1:0,                'mima'=>md5($row['mima']),                );            M('student')->add($data);        }        echo 1;    }

5.PHPExcel讀取Excel檔案返回資料函數


function excel_to_mysql($file){        //匯入PHPExcel第三方類庫        //vendor('PHPExcel.PHPExcel');        import('Classes.PHPExcel',COMMON_PATH,'.php');        //執行個體化PHPExcel類,用於接收Excel檔案        $PHPExcel = new PHPExcel();        //讀取Excel檔案類執行個體化        $PHPReader = new PHPExcel_reader_Excel5();        //檢測Excel版本是否可讀        if(!$PHPReader->canRead($file)){                        $PHPReader = new PHPExcel_Reader_Excel2007();                        if(!$PHPReader->canRead($file)) return array('error'=>1);//未知版本的Excel        }        //讀取Excel檔案        $PHPExcel = $PHPReader->load($file);        //獲得Excel中表的數量        $sheetCount = $PHPExcel->getSheetCount();        //獲得第一張工作表        $sheet=$PHPExcel->getSheet(0);        //獲得表中最大資料列名        $column = $sheet->getHighestColumn();        //獲得表中最大資料行名        $row = $sheet->getHighestRow();        //迴圈獲得表中資料        for($i=1;$i<=$row;$i++){                        $data[] = array(                //通過工作表對象的getCell方法獲得儲存格 getValue方法獲得該儲存格數值                'xuehao'=>$sheet->getCell('A'.$i)->getValue(),                              'xingming'=>$sheet->getCell('B'.$i)->getValue(),                'xingbie'=>$sheet->getCell('C'.$i)->getValue(),                'mima'=>$sheet->getCell('D'.$i)->getValue(),                        );        }        //釋放工作表對象        unset($sheet);        //釋放讀取Excel檔案對象        unset($PHPReader);        //釋放Excel檔案對象        unset($PHPExcel);        //返回資料        return array('error'=>0,'data'=>$data);    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.