1. 程式人生 > >thinkphp5使用phpexcel實現匯入匯出功能

thinkphp5使用phpexcel實現匯入匯出功能

1.下載PHPExcel:https://share.weiyun.com/5IN8lEY

2.解壓檔案:

​3.將classes改為PHPExcel,複製到根目錄的vendor:

3.前端程式碼:

<form method="post" action="{:url('savestudentImport')}" class="form-signin" enctype="multipart/form-data" >  
    <input name="excel" type="file" class="form-control">  
    <button class
="btn btn-lg btn-primary btn-block">匯入</button> </form>

 

4控制器中匯入方法:

    //匯入功能
     public function savestudentImport(){  
        //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二  
        vendor("PHPExcel.PHPExcel"); //方法一  
        $objPHPExcel = new \PHPExcel();  
  
        
//獲取表單上傳檔案 $file = request()->file('excel'); $info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel'); if($info){ $exclePath = $info->getSaveName(); //獲取檔名 $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath
; //上傳檔案的地址 $objReader =\PHPExcel_IOFactory::createReader('Excel2007'); $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //載入檔案內容,編碼utf-8 echo "<pre>"; $excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //轉換為陣列格式 array_shift($excel_array); //刪除第一個陣列(標題); $data = []; $i=0; foreach($excel_array as $k=>$v) { $data[$k]['name'] = $v[0]; $data[$k]['type'] = $v[1]; $i++; } $success=Db::name('fuzhuang')->insertAll($data); //批量插入資料 這裡的資料表改為你需要的。 //$i= $error=$i-$success; $this->success('匯入成功{$success}條記錄,失敗{$error}條記錄','lan/index'); // echo "總{$i}條,成功{$success}條,失敗{$error}條。"; // Db::name('t_station')->insertAll($city); //批量插入資料 }else{ // 上傳失敗獲取錯誤資訊 echo $file->getError(); } }

 

5.我們在資料庫建立fuzhuang表:

​6.建立一個excel表格:

7.

8.再次檢視資料庫: