Thinkphp5+PHPExcel实现批量上传表格数据功能

Thinkphp5+PHPExcel实现批量上传表格数据功能

http://www.jb51.net/article/129262.htm

1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里

Thinkphp5+PHPExcel实现批量上传表格数据功能

2.前端代码

<!DOCTYPE html>
<html>
<head>
  <title>批量导入数据</title>
</head>
<body>
<form action="{:url('/index/index/importExcel')}" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile"><br/>
  <input type="submit" value="批量的导入">
</form>
</body>
</html>

 

   

3.后台代码

/**
  * 导入表格数据
  * 先把文件上传到服务器,然后再读取数据存到数据库
  */
  public function importExcel(){
    header("content-type:text/html;charset=utf-8");
    //上传excel文件
    $file = request()->file('myfile');
    //移到/public/uploads/excel/下
    $info = $file->move(ROOT_PATH.'public'.DS.'uploads'.DS.'excel');
    //上传文件成功
    if ($info) {
      //引入PHPExcel类
      vendor('PHPExcel.PHPExcel.Reader.Excel5');
      //获取上传后的文件名
      $fileName = $info->getSaveName();
      //文件路径
      $filePath = 'public/uploads/excel/'.$fileName;
      //实例化PHPExcel类
      $PHPReader = new \PHPExcel_Reader_Excel5();
      //读取excel文件
      $objPHPExcel = $PHPReader->load($filePath);
      //读取excel文件中的第一个工作表
      $sheet = $objPHPExcel->getSheet(0);
      $allRow = $sheet->getHighestRow();  //取得总行数
      //$allColumn = $sheet->getHighestColumn();  //取得总列数
      //从第二行开始插入,第一行是列名
      for ($j=2; $j <= $allRow; $j++) {
        $data['name'] = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();
        $data['tel'] = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();
        $data['addr'] = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();
        $last_id = Db::table('users')->insertGetId($data);//保存数据,并返回主键id
        if ($last_id) {
          echo "第".$j."行导入成功,users表第:".$last_id."条!<br/>";
        }else{
          echo "第".$j."行导入失败!<br/>";
        }
      }
    }else{
      echo "上传文件失败!";
    }
  }

   

输出结果:

Thinkphp5+PHPExcel实现批量上传表格数据功能

注意:

引入第三方类库使用vendor();是按照命名空间的形式。底层代码会把“ . ”自动替换成” / “,所以使用“ / ”时要用“ . ”代替;

以上代码可以直接复制使用,但是数据库相关信息要改成你自己的!

总结

以上所述是小编给大家介绍的Thinkphp5+PHPExcel实现批量上传表格数据功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会

原文链接:http://www.cnblogs.com/zxf100/archive/2017/11/28/7908659.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113670.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • scrapy使用代理ip_useragent怎么改

    scrapy使用代理ip_useragent怎么改#使用了fake库fromfake_useragentimportUserAgent#配置headersclassRandomUserAgentMidddlware(object):#随机更换user-agentdef__init__(self,crawler):super(RandomUserAgentMidddlware,self).__init__()self.ua=UserAgent()#.

  • thinkpad笔记本电脑指示灯图解_thinkpad笔记本关机后,指示灯还亮

    thinkpad笔记本电脑指示灯图解_thinkpad笔记本关机后,指示灯还亮顺序自左向右: 1挂起状态指示灯绿色:计算机处于挂起状态绿色且不断闪烁:计算机正在进入挂起或休眠状态,或者正在从挂起或休眠状态中恢复回来2AC电源状态指示灯绿色:计算机连接到交流电源上3电池状态指示灯绿色:电池电量在80%到100%of之间,以及电量处于20%到80%之间,正在使用中.绿色且不断闪烁:电池电量在20%到80%之间,且正在充电中.橙色:电池电量

  • jenkins之搭建部署

    jenkins之搭建部署25.1CI/CD介绍互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:编码–>构建–>集成–>测试–>交付–>部署正如你在上图中看到,[持续集成(ContinuousIntegration)]、[持续交付(ContinuousDelivery)]和[持续部署(ContinuousDepl…

  • Django(19)QuerySet API[通俗易懂]

    Django(19)QuerySet API[通俗易懂]前言我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager

  • 组合数学容斥原理答案_容斥原理例题精讲

    组合数学容斥原理答案_容斥原理例题精讲一.容斥原理就是人们为了不重复计算重叠部分,想出的一种不重复计算的方法。先来认识一下这两个符号:与(如图)蓝色的圈就是c1c2,红色的圈围起来的就是c1c2二.例题:组合数学1.题目1.1.题目描述八是个很有趣的数字啊。八=发,八八=爸爸,88=拜拜。当然最有趣的还是8用二进制表示是1000。怎么样,有趣吧。当然题目和这些都没有关系。某个人很无聊,他想找出[a,b…

    2022年10月28日
  • glob模式_glob生化

    glob模式_glob生化在学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式。接下来我们认识下什么是glob模式。在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名。例如:Unix命

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号