視圖:
<form method="post" action="{:url('emp/addexcel')}" enctype="multipart/form-data"> <input name="file_stu" type="file" > <button class="btn btn-sm btn-primary ">導入</button> </form>
控制器:public function addExcel() { if (!empty($_FILES['file_stu']['name'])) { //獲取表單上傳文件 vendor("PHPExcel.PHPExcel"); //方法一 $objPHPExcel = new \PHPExcel(); $file = request()->file('file_stu'); $info = $file->validate(['size' => 15678, 'ext' => 'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'Excel'); if (!$info) { // 上傳錯誤提示錯誤信息 $this->error($upload->getError()); } else { $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 $excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //轉換爲數組格式 array_shift($excel_array); //刪除第一個數組(標題); $data = []; $i = 0; foreach ($excel_array as $k => $v) { $data[$k]['realname'] = $v[0]; $data[$k]['d_id'] = $v[1]; $data[$k]['username'] = 'employee'; $data[$k]['password'] = '111111'; $data[$k]['r_id'] = 4; $data[$k]['statu'] = 0; $data[$k]['addtime'] = date('Y-m-d h:m:s', time()); $i++; } $success = Db::table('user')->insertAll($data); //批量插入數據 //$i= $error = $i - $success; // echo "總{$i}條,成功{$success}條,失敗{$error}條。"; } $this->success('導入數據庫' . $success . '條,成功。' . $error . '失敗', 'emp/list'); } else { $this->error('(⊙o⊙)~沒傳數據就導入'); } }