侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP上传Excel文件导入数据到MySQL数据库示例

php  /  管理员 发布于 7年前   140

最近在做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);

2.生成项目

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

3.上传文件表单

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

       上传文件            

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

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;");    //引入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读取CSV大文件导入数据库的实例
  • 如何解决phpmyadmin导入数据库文件最大限制2048KB
  • 基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
  • PHP将Excel导入数据库及数据库数据导出至Excel的方法
  • php快速导入大量数据的实例方法


  • 上一条:
    AES加解密在php接口请求过程中的应用示例
    下一条:
    详解PHP中foreach的用法和实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客