【tp5.1】通過PHPExcel實現導入excel表格


1.上github下載PHPExcel,鏈接:https://github.com/PHPOffice/PHPExcel

2.下載解壓后,將Classes改名為PHPExcel如圖

 

 3.將文件夾復制到項目內extend

4.html代碼

<form method="post" action="/admin/pos/posImport" class="form-signin" enctype="multipart/form-data" role="form"  id="form" >
      <input name="excel" type="file" class="form-control excel_path">
      <input type="submit" value="導入Excel" class="btn btn-lg btn-primary btn-block">
</form>

5.php代碼,tp5.1取消了vendor和import

        //上傳excel文件
        $file = request()->file('excel');
        //將文件保存到public/uploads目錄下面
        $info = $file->validate(['size'=>1048576,'ext'=>'xls,xlsx'])->move( './uploads');
        if($info){
            //獲取上傳到后台的文件名
            $fileName = $info->getSaveName();
            //獲取文件路徑
            $filePath = Env::get('root_path').'public'.DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR.$fileName;
            //獲取文件后綴
            $suffix = $info->getExtension();
            //判斷哪種類型
            if($suffix=="xlsx"){
                $reader = \PHPExcel_IOFactory::createReader('Excel2007');
            }else{
                $reader = PHPExcel_IOFactory::createReader('Excel5');
            }
        }else{
            $this->error('文件過大或格式不正確導致上傳失敗-_-!');
        }
        //載入excel文件
        $excel = $reader->load("$filePath",$encode = 'utf-8');
        //讀取第一張表
        $sheet = $excel->getSheet(0);
        //獲取總行數
        $row_num = $sheet->getHighestRow();
        //獲取總列數
        $col_num = $sheet->getHighestColumn();
        $data = []; //數組形式獲取表格數據
        for ($i = 2; $i <= $row_num; $i ++) {
            $data[$i]['code']  = $sheet->getCell("A".$i)->getValue();
            $data[$i]['last_code']  = substr($sheet->getCell("A".$i)->getValue(),-6);
            $time = date('Y-m-d H:i',\PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell("B".$i)->getValue()));//將excel時間改成可讀時間
            $data[$i]['time'] = strtotime($time);
            //將數據保存到數據庫
        }
        $res = Db::name('pos_code')->insertAll($data);

如此便可以導入表格了,導出表格晚些更新

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM