Heim  >  Artikel  >  Backend-Entwicklung  >  PHP importiert eine Excel-Datei in die MySQL-Datenbank

PHP importiert eine Excel-Datei in die MySQL-Datenbank

墨辰丷
墨辰丷Original
2018-05-31 11:47:112704Durchsuche

In diesem Artikel wird hauptsächlich das Hochladen von Excel-Dateien in die MySQL-Datenbank mit PHP vorgestellt. Interessierte Schüler können mehr darüber erfahren.

Ich importiere derzeit Daten aus Excel-Dateien in die Datenbank. Wenn die Website das Batch-Einfügen von Daten unterstützen möchte, kann sie ein kleines Programm erstellen, das Excel-Dateien hochlädt und den Dateninhalt in die MySQL-Datenbank importiert.

Zu verwendende Tools:

ThinkPHP: leichtes inländisches PHP-Entwicklungsframework. Es kann von der offiziellen ThinkPHP-Website heruntergeladen werden.

PHPExcel: Eine PHP-Klassenbibliothek für Office Excel-Dokumente, die auf dem OpenXML-Standard und der PHP-Sprache von Microsoft basiert. Es kann von der offiziellen CodePlex-Website heruntergeladen werden. ,

1. MySQL-Datenbankprodukt entwerfen

Produktdatenbank erstellen

CREATE DATABASE product DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

pro_info-Tabelle erstellen, Tabellenstruktur

CREATE TABLE pro_info(
pId int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
pName varchar(20) NOT NULL,
pPrice float NOT NULL,
pCount float NOT NULL
);

2. Projekt

zuerst in ThinkPHP erstellen Erstellen Sie eine neue index.php-Datei im selben Verzeichnis, um das Projekt Home zu generieren.

<?php
 
define(&#39;APP_NAME&#39;, &#39;Home&#39;);  //项目名称
define(&#39;APP_PATH&#39;, &#39;./Home/&#39;); //项目路径
define(&#39;APP_DEBUG&#39;, true);   //开启DEBUG
require &#39;./ThinkPHP/ThinkPHP.php&#39;;  //引入ThinkPHP核心运行文件
?>

3. Datei hochladen

in Home/ Erstellen Sie einen neuen Index-Ordner unter dem Tpl-Ordner und erstellen Sie darin eine neue index.html-Datei

<!DOCTYPE html>
 
<html>
  <head>
    <title>上传文件</title>
    <meta charset="UTF-8">
  </head>
  <body>
    <form id="upload" action="__URL__/upload/" method="post" enctype="multipart/form-data">
      <label for="file">上传文件:</label>
      <input type="file" name="file" id="file"><br />
      <input type="submit" name="submit" value="上传" />
    </form>
  </body>
</html>

4 /Lib/Action/IndexAction.class Schreiben Sie Methoden zum Anzeigen der Upload-Formularseite, zum Hochladen von Excel-Dateien und zum Importieren von Excel-Dateien in .php (wenn unter ThinkPHP/Extend kein Erweiterungspaket vorhanden ist, müssen Sie es von der offiziellen ThinkPHP-Website herunterladen). , und entpacken Sie dann das Erweiterungspaket und legen Sie es ein)

<?php
 
/**
*
* 导入Excel文件数据到MySQL数据库
*/
class IndexAction extends Action {
 
  /**
   * 显示上传表单html页面
   */
  public function index() {
    $this->display();
  }
 
  /**
   * 上传Excel文件
   */
  public function upload() {
    //引入ThinkPHP上传文件类
    import(&#39;ORG.Net.UploadFile&#39;);
    //实例化上传类
    $upload = new UploadFile();
    //设置附件上传文件大小200Kib
    $upload->mixSize = 2000000;
    //设置附件上传类型
    $upload->allowExts = array(&#39;xls&#39;, &#39;xlsx&#39;, &#39;csv&#39;);
    //设置附件上传目录在/Home/temp下
    $upload->savePath = &#39;./Home/temp/&#39;;
    //保持上传文件名不变
    $upload->saveRule = &#39;&#39;;
    //存在同名文件是否是覆盖
    $upload->uploadReplace = true;
    if (!$upload->upload()) {  //如果上传失败,提示错误信息
      $this->error($upload->getErrorMsg());
    } else {  //上传成功
      //获取上传文件信息
      $info = $upload->getUploadFileInfo();
      //获取上传保存文件名
      $fileName = $info[0][&#39;savename&#39;];
      //重定向,把$fileName文件名传给importExcel()方法
      $this->redirect(&#39;Index/importExcel&#39;, array(&#39;fileName&#39; => $fileName), 1, &#39;上传成功!&#39;);
    }
  }
 
  /**
   *
   * 导入Excel文件
   */
  public function importExcel() {
    header("content-type:text/html;charset=utf-8");
    //引入PHPExcel类
    vendor(&#39;PHPExcel&#39;);
    vendor(&#39;PHPExcel.IOFactory&#39;);
    vendor(&#39;PHPExcel.Reader.Excel5&#39;);
 
    //redirect传来的文件名
    $fileName = $_GET[&#39;fileName&#39;];
 
    //文件路径
    $filePath = &#39;./Home/temp/&#39; . $fileName . &#39;.xlsx&#39;;
    //实例化PHPExcel类
    $PHPExcel = new PHPExcel();
    //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
    $PHPReader = new PHPExcel_Reader_Excel2007();
    if (!$PHPReader->canRead($filePath)) {
      $PHPReader = new PHPExcel_Reader_Excel5();
      if (!$PHPReader->canRead($filePath)) {
        echo &#39;no Excel&#39;;
        return;
      }
    }
 
    //读取Excel文件
    $PHPExcel = $PHPReader->load($filePath);
    //读取excel文件中的第一个工作表
    $sheet = $PHPExcel->getSheet(0);
    //取得最大的列号
    $allColumn = $sheet->getHighestColumn();
    //取得最大的行号
    $allRow = $sheet->getHighestRow();
    //从第二行开始插入,第一行是列名
    for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
      //获取B列的值
      $name = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue();
      //获取C列的值
      $price = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue();
      //获取D列的值
      $count = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue();
 
      $m = M(&#39;Info&#39;);
      $num = $m->add(array(&#39;pName&#39; => $name, &#39;pPrice&#39; => $price, &#39;pCount&#39; => $count));
    }
    if ($num > 0) {
      echo "添加成功!";
    } else {
      echo "添加失败!";
    }
  }
 
}
?>

5 🎜>Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Gleichzeitig hoffe ich auch, dass jeder die chinesische PHP-Website unterstützt.

Verwandte Empfehlungen:

php

So exportieren Sie Daten

php
Beispiel für einen einfachen Gewinnalgorithmus

PHP-Backtracking-Algorithmus


Das obige ist der detaillierte Inhalt vonPHP importiert eine Excel-Datei 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