中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何上傳Excel文件導入數據到MySQL數據庫

發布時間:2021-09-01 10:12:44 來源:億速云 閱讀:796 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“PHP如何上傳Excel文件導入數據到MySQL數據庫”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PHP如何上傳Excel文件導入數據到MySQL數據庫”這篇文章吧。

最近在做Excel文件導入數據到數據庫。網站如果想支持批量插入數據,可以制作一個上傳Excel文件,導入里面的數據內容到MySQL數據庫的小程序。

要用到的工具:

ThinkPHP:輕量級國產PHP開發框架。可在ThinkPHP官網下載。

PHPExcel:Office Excel 文檔的一個PHP類庫,它基于微軟的OpenXML標準和PHP語言。可在CodePlex官網下載。、

1.設計MySQL數據庫product

創建product數據庫

CREATE DATABASE product DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

創建pro_info表,表結構

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
);

PHP如何上傳Excel文件導入數據到MySQL數據庫

2.生成項目

先在ThinkPHP同級目錄下新建index.php文件,生成項目Home.

<?php
 
define('APP_NAME', 'Home');  //項目名稱
define('APP_PATH', './Home/'); //項目路徑
define('APP_DEBUG', true);   //開啟DEBUG
require './ThinkPHP/ThinkPHP.php';  //引入ThinkPHP核心運行文件
?>

3.上傳文件表單

在Home/Tpl文件夾下新建Index文件夾,里面新建index.html文件

<!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.在/Home/Lib/Action/IndexAction.class.php中編寫顯示上傳表單頁面、上傳Excel文件、導入Excel文件方法(如果ThinkPHP/Extend下沒有擴展包,需要在ThinkPHP官網下載,然后將擴展包解壓放入)

<?php
 
/**
*
* 導入Excel文件數據到MySQL數據庫
*/
class IndexAction extends Action {
 
  /**
   * 顯示上傳表單html頁面
   */
  public function index() {
    $this->display();
  }
 
  /**
   * 上傳Excel文件
   */
  public function upload() {
    //引入ThinkPHP上傳文件類
    import('ORG.Net.UploadFile');
    //實例化上傳類
    $upload = new UploadFile();
    //設置附件上傳文件大小200Kib
    $upload->mixSize = 2000000;
    //設置附件上傳類型
    $upload->allowExts = array('xls', 'xlsx', 'csv');
    //設置附件上傳目錄在/Home/temp下
    $upload->savePath = './Home/temp/';
    //保持上傳文件名不變
    $upload->saveRule = '';
    //存在同名文件是否是覆蓋
    $upload->uploadReplace = true;
    if (!$upload->upload()) {  //如果上傳失敗,提示錯誤信息
      $this->error($upload->getErrorMsg());
    } else {  //上傳成功
      //獲取上傳文件信息
      $info = $upload->getUploadFileInfo();
      //獲取上傳保存文件名
      $fileName = $info[0]['savename'];
      //重定向,把$fileName文件名傳給importExcel()方法
      $this->redirect('Index/importExcel', array('fileName' => $fileName), 1, '上傳成功!');
    }
  }
 
  /**
   *
   * 導入Excel文件
   */
  public function importExcel() {
    header("content-type:text/html;charset=utf-8");
    //引入PHPExcel類
    vendor('PHPExcel');
    vendor('PHPExcel.IOFactory');
    vendor('PHPExcel.Reader.Excel5');
 
    //redirect傳來的文件名
    $fileName = $_GET['fileName'];
 
    //文件路徑
    $filePath = './Home/temp/' . $fileName . '.xlsx';
    //實例化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 'no Excel';
        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('Info');
      $num = $m->add(array('pName' => $name, 'pPrice' => $price, 'pCount' => $count));
    }
    if ($num > 0) {
      echo "添加成功!";
    } else {
      echo "添加失敗!";
    }
  }
 
}
?>

5.測試

PHP如何上傳Excel文件導入數據到MySQL數據庫

以上是“PHP如何上傳Excel文件導入數據到MySQL數據庫”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闻喜县| 阳江市| 永丰县| 浦城县| 仙居县| 克什克腾旗| 福安市| 易门县| 龙海市| 林周县| 朔州市| 高州市| 兴和县| 汶上县| 象州县| 武威市| 广平县| 鸡东县| 江北区| 安宁市| 木里| 孝义市| 柳河县| 阿坝县| 英超| 南陵县| 马边| 宝兴县| 鲁山县| 通化县| 新竹县| 中山市| 辽宁省| 志丹县| 醴陵市| 通城县| 定州市| 华容县| 永年县| 丰顺县| 图片|