PHP Excel匯入資料到MySQL資料庫的方法

來源:互聯網
上載者:User
這篇文章主要介紹了關於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!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.