站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

ThinkPhp5.1 + PHPExcel制作數(shù)據(jù)導(dǎo)入

數(shù)據(jù)導(dǎo)入,在很多地方都會有需要,如何使用ThinkPhp5.1制作數(shù)據(jù)導(dǎo)入,接下來小編帶大家去了解整個(gè)過程。

1 準(zhǔn)備工作

小編是通過PHPExcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的,所以在制作之前首先需要下載PHPExcel相關(guān)組件,目前tp5.1支持composer安裝,小編就是通過composer安裝的PHPExcel組件。【推薦:thinkphp視頻教程】

在安裝之前首先需要確定自己的電腦上有composer組件,如果還沒有安裝 Composer,在 Linux 和 Mac OS X 中可以運(yùn)行如下命令:

curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer

在 Windows 中,你需要下載并運(yùn)行 Composer-Setup.exe,下載地址:

https://www.kancloud.cn/manual/thinkphp5_1/353948

安裝好composer之后,就是安裝PHPExcel了,win+R,打開運(yùn)行界面,輸入cmd,進(jìn)入管理界面,輸入你的項(xiàng)目所在的盤符(此處以D盤為例,項(xiàng)目在D:phpstudy_proWWWmyapp.io),然后點(diǎn)擊回車:

ThinkPhp5.1 + PHPExcel制作數(shù)據(jù)導(dǎo)入

輸入:cd D:phpstudy_proWWWmyapp.io,定位到項(xiàng)目所在目錄

ThinkPhp5.1 + PHPExcel制作數(shù)據(jù)導(dǎo)入

接下來就是安裝PHPExcel插件,輸入:composer require phpoffice/phpexcel,點(diǎn)擊回車,即可開始安裝PHPExcel。

2 前端提交頁面

html

<form class="layui-form" enctype="multipart/form-data">     <input type="hidden" name="type_id" value="{$type_id}">     <div class="layui-form-item" style="margin-left: 42px;">         <div class="layui-input-inline" style="width: 122px;">             <button type="button" class="layui-btn" name="file" lay-verify="file" id="test3"><i class="layui-icon"></i>上傳文件</button>         </div>     </div>     <div class="layui-form-item" style="margin-left: 42px;">         <div class="layui-input-inline">             <button  class="layui-btn" lay-filter="add" lay-submit="add">                 導(dǎo)入             </button>         </div>     </div>     <div class="layui-form-item">         <div class="layui-input-block">             <div style="line-height: 35px;">                 注:                 <p>1.文件大小:請上傳小于10M的文件</p>                 <p>2.文件類型:上傳時(shí)首先                     <span class="common-a">                 <a href="/import/member.xlsx">下載導(dǎo)入模板</a>             </span>,填好信息后上傳</p>             </div>         </div>     </div> </form>

js

<script>     layui.use(['form', 'layer','upload'], function () {         $ = layui.jquery;         var form = layui.form             , layer = layui.layer;          var $ = layui.jquery,             upload = layui.upload;          upload.render({             elem: '#test3'             ,url: '你的上傳路徑'             ,accept: 'file' //普通文件             ,exts: 'xls|xlsx'             ,size:'10240'             ,done: function(res){                 $('#test3').append('<input type="text" name="file" id="file" lay-verify="file" value="'+res.data +'" />')             }         });         //監(jiān)聽提交         form.on('submit(add)', function(data){             console.log(data);             //發(fā)異步,把數(shù)據(jù)提交給php             $.post('{:url('saveImportMember')}',$('form').serialize(),function(data){                 if(data.res == 1){                     layer.msg(data.msg);                     setTimeout(function(){parent.window.location.reload();},1000);                 }else if(data.res == 0){                     layer.alert(data.msg,{icon: 2});                 }else{                     layer.alert('操作失敗',{icon: 2});                 }             })             return false;         });     }); </script>

3 后臺處理

這里以上傳一張會員信息表為例,包含的字段值有:姓名(name)、性別(sex)、會員類型(type_id)、身份證號(identity)、會員編號(number)、聯(lián)系電話(telephone)、排序(sort)、會員狀態(tài)(status)。

//上傳excel文件 $file = Request::param('file'); //獲取文件路徑 $filePath = Env::get('root_path').'public'.DIRECTORY_SEPARATOR.$file; if($filePath == ''){     return ['res'=>0,'msg'=>'你上傳的文件為空']; } $suffix = $this->DbSy->GetFileExt($file); //判斷哪種類型 if($suffix=="xlsx"){     $reader = PHPExcel_IOFactory::createReader('Excel2007'); }else{     $reader = PHPExcel_IOFactory::createReader('Excel5'); } //載入excel文件 $excel = $reader->load("$filePath",$encode = 'utf-8'); //讀取第一張表 $sheet = $excel->getSheet(0); //獲取總行數(shù) $row_num = $sheet->getHighestRow(); //獲取總列數(shù) $col_num = $sheet->getHighestColumn(); $time = time(); $data = []; //數(shù)組形式獲取表格數(shù)據(jù) $count = 0; $total = 0; $error_count = 0; for ($i = 2; $i <= $row_num; $i ++) {     $type_id = Request::param('type_id');     $data['type_id'] = $type_id;     $name = $sheet->getCell("A".$i)->getValue();     $sex = $sheet->getCell("B".$i)->getValue();     $identity = $sheet->getCell("C".$i)->getValue();     $telephone = $sheet->getCell("F".$i)->getValue();     $data['sort'] = $this->DbSy->getSort(5,'sort desc',array('type_id'=>$type_id));     if(!$identity){         return ['res'=>0,'msg'=>'身份證號不能為空'];     }     $data['identity'] = $identity;     if(!$name){         return ['res'=>0,'msg'=>'姓名不能為空'];     }     $data['name'] = $name;     if($sex=='男'){         $data['sex'] = 1;     }elseif ($sex=='女'){         $data['sex'] = 2;     }else{         $data['sex'] = 3;     }     $data['identity'] = $identity;     $data['number'] = $this->DbSy->getNumber(5,'sort desc',array('type_id'=>$type_id));         if($telephone){         $data['telephone'] = $telephone;     }else{         $data['telephone'] = '';     }     $data['status'] = 5;     $member = $this->DbSy->FindWhere(5,array('name'=>$name,'identity'=>$identity,'type_id'=>$type_id));     if($member){         /*$data['updatetime'] = time();*/         $info = $this->DbSy->editContent(5,$data,array('id'=>$member['id']));         if($info){             $total++;         }     }else{         // 讀取單元格         $data['addtime'] = time();         $data['updatetime'] = time();         $info = $this->DbSy->insertGetId(5,$data);         if($info){             $count++;         }else{             $error_count++;         }     } } $msg =  "成功導(dǎo)入".$count."條數(shù)據(jù),重復(fù)".$total."條數(shù)據(jù),導(dǎo)入失敗".$error_count."條數(shù)據(jù)"; if($count > 0){     return ['res'=>1,'msg'=>$msg]; }else{     return ['res'=>0,'msg'=>$msg]; }

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产精品午夜高清在线观看| 国产精品爱啪在线线免费观看| 色妞www精品一级视频| 韩国精品一区视频在线播放| 亚洲欧洲国产精品久久| 久热香蕉精品视频在线播放 | 久久久久久国产精品免费免费男同 | 日韩不卡视频在线观看| 国产成人精品三级麻豆| 国产精品福利一区| 99久久综合精品五月天| 久久亚洲精品无码av| 国产成人愉拍精品| 国产精品福利一区二区久久| 91freevideos精品| 久久精品国产精品亚洲毛片| 无码精品一区二区三区在线 | 国产精品∧v在线观看| 欧洲精品无码成人久久久| 久久这里都是精品| 久久这里只精品99re66| 囯产精品久久久久久久久久妞妞| 精品国产福利片在线观看| 国产成人精品日本亚洲11| 精品国产一区二区三区色欲| 久久精品久久久久观看99水蜜桃 | 日韩精品无码永久免费网站| 亚洲国产精品日韩专区AV| 日韩精品无码一区二区三区AV| 日韩高清在线二区| 久久久无码精品亚洲日韩按摩| 亚洲日韩国产精品乱-久| 日韩中文有码高清| selao久久国产精品| 国产精品国产三级国产a| 狠狠精品久久久无码中文字幕| 9久久这里只有精品国产| 日本无码小泬粉嫩精品图| 精品一区二区久久| 久久久久国产精品免费看| 97精品人人妻人人|