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

 更新时间:2017年11月28日 11:48:33   转载 作者:下页、再停留  
这篇文章主要介绍了Thinkphp5+PHPExcel实现批量上传表格数据功能,需要的朋友可以参考下

1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的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 "上传文件失败!";
    }
  }

输出结果:


注意:

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

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

总结

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

相关文章

  • 用PHP生成excel文件到指定目录

    用PHP生成excel文件到指定目录

    这篇文章主要介绍了用PHP生成excel文件到指定目录的相关资料,需要的朋友可以参考下
    2015-06-06
  • php判断手机访问还是电脑访问示例分享

    php判断手机访问还是电脑访问示例分享

    这篇文章主要介绍了网站判断是手机访问还是电脑访问,然后显示不同的信息,大家参考使用吧
    2014-01-01
  • PHP 自动加载的简单实现(推荐)

    PHP 自动加载的简单实现(推荐)

    下面小编就为大家带来一篇PHP 自动加载的简单实现(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 如何在centos8自定义目录安装php7.3

    如何在centos8自定义目录安装php7.3

    在本文中我们将给大家介绍如何在centos8自定义目录安装php7.3,在选择要安装的PHP版本之前,请确保你的应用程序支持它,我们还将向你展示如何将PHP与Nginx和Apache集成,感兴趣的朋友跟随小编一起看看吧
    2019-11-11
  • 利用php做服务器和web前端的界面进行交互

    利用php做服务器和web前端的界面进行交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段。本篇文章主要介绍了利用php做服务器和web前端的界面进行交互,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • PHP仿博客园 个人博客(1) 数据库与界面设计

    PHP仿博客园 个人博客(1) 数据库与界面设计

    自学PHP大半年多了,断断续续地,但是最终还是坚定了我的想法,将PHP继续下去,所以写这个PHP的博客是为了找个稳定的 PHP工作,不求工资多高,但求一收留之地
    2013-07-07
  • PHP JWT初识及其简单示例

    PHP JWT初识及其简单示例

    这篇文章主要介绍了PHP JWT初识及其简单示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • stripos函数知识点实例分享

    stripos函数知识点实例分享

    在本篇内容中我们给大家分享了关于stripos函数知识点实例内容,有需要的朋友们跟着学习下。
    2019-02-02
  • CodeIgniter框架基本增删改查操作示例

    CodeIgniter框架基本增删改查操作示例

    这篇文章主要介绍了CodeIgniter框架基本增删改查操作,结合具体实例形式分析了CodeIgniter框架针对数据库进行创建、增删改查等操作的相关实现技巧,需要的朋友可以参考下
    2017-03-03
  • Yii入门教程之目录结构、入口文件及路由设置

    Yii入门教程之目录结构、入口文件及路由设置

    本文从YII的目录结构开始分析,到入口文件分析,到路由设置详解,视图详解,十分全面的向我们展示了YII框架的方方面面,是篇非常不错的文章,这里推荐给大家。
    2014-11-11

最新评论