這篇文章主要介紹了關於PHP Excel匯入資料到MySQL資料庫的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
資料匯出已經有了,怎麼能沒有資料匯入呢,同樣使用TP5架構,首先需要下載phpexcel.zip,放到第三方類庫目錄vendor目錄下,然後有一個頁面可以讓你選擇要匯入的Excel檔案,然後點擊匯入按鈕調用介面:
我的模板內的資料如:
後端介面代碼如下:
public function uplExcel(Request $request) { if (!empty($_FILES['excel']['name'])) { $fileName = $_FILES['excel']['name']; //得到檔案全名 $dotArray = explode('.', $fileName); //把檔案名稱安.區分,拆分成數組 $type = end($dotArray); if ($type != "xls" && $type != "xlsx") { $ret['res'] = "0"; $ret['msg'] = "不是Excel檔案,請重新上傳!"; return json_encode($ret); } //取數組最後一個元素,得到檔案類型 $uploaddir = "../uploads2/" . date("Y-m-d") . '/';//設定檔案儲存目錄 注意包含 if (!file_exists($uploaddir)) { mkdir($uploaddir, 0777, true); } $path = $uploaddir . md5(uniqid(rand())) . '.' . $type; //產生隨機檔案名稱 //$path = "images/".$fileName; //用戶端上傳的檔案名稱; //下面必須是tmp_name 因為是從臨時檔案夾中移動 move_uploaded_file($_FILES['excel']['tmp_name'], $path); //從伺服器臨時檔案拷貝到相應的檔案夾下 $file_path = $path; if (!file_exists($path)) { $ret['res'] = "0"; $ret['msg'] = "上傳檔案丟失!" . $_FILES['excel']['error']; return json_encode($ret); } //檔案的副檔名 $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); if ($ext == 'xlsx') { $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($file_path, 'utf-8'); } elseif ($ext == 'xls') { $objReader = \PHPExcel_IOFactory::createReader('Excel5'); $objPHPExcel = $objReader->load($file_path, 'utf-8'); } $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); // 取得總行數 $highestColumn = $sheet->getHighestColumn(); // 取得總列數 $ar = array(); $i = 0; $importRows = 0; for ($j = 2; $j <= $highestRow; $j++) { $importRows++; $realName = (string)$objPHPExcel->getActiveSheet()->getCell("A$j")->getValue();//需要匯入的realName $phone = (string)$objPHPExcel->getActiveSheet()->getCell("B$j")->getValue(); //需要匯入的phone $company = (string)$objPHPExcel->getActiveSheet()->getCell("C$j")->getValue(); //需要匯入的company $job = (string)$objPHPExcel->getActiveSheet()->getCell("D$j")->getValue(); //需要匯入的job $email = (string)$objPHPExcel->getActiveSheet()->getCell("E$j")->getValue(); //需要匯入的email $ret['mdata'] = $this->addMemb($phone, $realName, $company, $job, $email);//這裡就是我的資料庫添加操作定義的一個方法啦,對應替換為自己的 if ($ret['mdata'] && !is_Bool($ret['mdata'])) { $ar[$i] = $ret['mdata']; $i++; } } if ($i > 0) { $ret['res'] = "0"; $ret['errNum'] = $i; $ret['allNum'] = $importRows; $ret['sucNum'] = $importRows - $i; $ret['mdata'] = $ar; $ret['msg'] = "匯入完畢!"; return json_encode($ret); } $ret['res'] = "1"; $ret['allNum'] = $importRows; $ret['errNum'] = 0; $ret['sucNum'] = $importRows; $ret['mdata'] = "匯入成功!"; return json_encode($ret); } else { $ret['res'] = "0"; $ret['msg'] = "上傳檔案失敗!"; return json_encode($ret); } }
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!