Excel文件导入数据到MySQL数据库的方法实例

小云云
发布: 2018-03-09 14:04:38
原创
3211人浏览过

最近在做excel文件导入数据到数据库。网站如果想支持批量插入数据,可以制作一个上传excel文件,导入里面的数据内容到mysql数据库的小程序。本文主要和大家分享excel文件导入数据到mysql数据库的方法实例,希望能帮助到大家。

要用到的工具:

ThinkPHP:轻量级国产PHP开发框架。可在ThinkPHP官网下载。

PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可在CodePlex官网下载。、

1.设计MySQL数据库product

创建product数据库


@@######@@

创建pro_info表,表结构


@@######@@

2.生成项目

先在ThinkPHP同级目录下新建index.php文件,生成项目Home.


@@######@@

3.上传文件表单

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


@@######@@

4.在/Home/Lib/Action/IndexAction.class.php中编写显示上传表单页面、上传Excel文件、导入Excel文件方法(如果ThinkPHP/Extend下没有扩展包,需要在ThinkPHP官网下载,然后将扩展包解压放入)


@@######@@

5.测试

相关推荐:

分享csv导入数据到mysql实例

导入数据到mysql的一种简单的方法_MySQL

SqlServer导入数据到MySql

CREATE DATABASE product DEFAULTCHARACTER SET utf8 COLLATE utf8_general_ci;
登录后复制
CREATE TABLE pro_info(
pId int(4)NOT NULL PRIMARY KEY AUTO_INCREMENT,
pName varchar(20)NOT NULL,
pPrice floatNOT NULL,
pCount floatNOT NULL
);
登录后复制
<?php
  
define('APP_NAME','Home');  //项目名称
define('APP_PATH','./Home/'); //项目路径
define('APP_DEBUG', true);  //开启DEBUG
require './ThinkPHP/ThinkPHP.php';  //引入ThinkPHP核心运行文件
?>
登录后复制
<!DOCTYPE html>
  
<html>
  <head>
    <title>上传文件</title>
    <metacharset="UTF-8">
  </head>
  <body>
    <formid="upload"action="__URL__/upload/"method="post"enctype="multipart/form-data">
      <labelfor="file">上传文件:</label>
      <inputtype="file"name="file"id="file"><br/>
      <inputtype="submit"name="submit"value="上传"/>
    </form>
  </body>
</html>
登录后复制
<?php
  
/**
*
* 导入Excel文件数据到MySQL数据库
*/
class IndexAction extends Action {
  
  /**
   * 显示上传表单html页面
   */
  publicfunction index() {
    $this->display();
  }
  
  /**
   * 上传Excel文件
   */
  publicfunction 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文件
   */
  publicfunction 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"添加失败!";
    }
  }
  
}
?>
登录后复制

以上就是Excel文件导入数据到MySQL数据库的方法实例的详细内容,更多请关注php中文网其它相关文章!

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号