Heim  >  Artikel  >  Backend-Entwicklung  >  So importieren Sie Daten aus PHP Excel in die MySQL-Datenbank

So importieren Sie Daten aus PHP Excel in die MySQL-Datenbank

不言
不言Original
2018-07-04 14:08:0011126Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Importieren von Daten aus PHP Excel in die MySQL-Datenbank vor. Jetzt kann ich ihn mit Ihnen teilen

Empfohlene verwandte MySQL-Video-Tutorials: „MySQL-Tutorial

Der Datenexport ist bereits verfügbar. Wie kann es sein, dass kein Datenimport erfolgt? Auch wenn Sie das TP5-Framework verwenden, müssen Sie dies zuerst tun Laden Sie phpexcel.zip herunter, legen Sie es im Anbieterverzeichnis des Bibliotheksverzeichnisses eines Drittanbieters ab. Anschließend gibt es eine Seite, auf der Sie die Excel-Datei auswählen können, die Sie importieren möchten, und dann auf die Schaltfläche „Importieren“ klicken, um die Datei aufzurufen Schnittstelle:

Die Daten in meiner Vorlage lauten wie folgt:

Der Back-End-Schnittstellencode lautet wie folgt :

    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[&#39;mdata&#39;] = $this->addMemb($phone, $realName, $company, $job, $email);//这里就是我的数据库添加操作定义的一个方法啦,对应替换为自己的

                if ($ret[&#39;mdata&#39;] && !is_Bool($ret[&#39;mdata&#39;])) {
                    $ar[$i] = $ret[&#39;mdata&#39;];
                    $i++;
                }
            }
            if ($i > 0) {
                $ret[&#39;res&#39;] = "0";
                $ret[&#39;errNum&#39;] = $i;
                $ret[&#39;allNum&#39;] = $importRows;
                $ret[&#39;sucNum&#39;] = $importRows - $i;
                $ret[&#39;mdata&#39;] = $ar;
                $ret[&#39;msg&#39;] = "导入完毕!";
                return json_encode($ret);
            }
            $ret[&#39;res&#39;] = "1";
            $ret[&#39;allNum&#39;] = $importRows;
            $ret[&#39;errNum&#39;] = 0;
            $ret[&#39;sucNum&#39;] = $importRows;
            $ret[&#39;mdata&#39;] = "导入成功!";
            return json_encode($ret);
        } else {
            $ret[&#39;res&#39;] = "0";
            $ret[&#39;msg&#39;] = "上传文件失败!";
            return json_encode($ret);
        }
    }

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller nützlich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erklärung, wie PHP die Arrays mit denselben Werten eine neue Array-Instanz bilden lässt

Statische Klassenaufrufe und Unterschiede zwischen Bereichsauflösungsoperatoren

Das obige ist der detaillierte Inhalt vonSo importieren Sie Daten aus PHP Excel in die MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn