现实中,我们往往很多地方都需要这样批量导入数据,除了phpexcel还有csv等方法可以解决

下面详细介绍一下使用方法

首先在官方下载安装包解压到本地,然后复制保存到tp框架下的vendor目录下

html页面如下

下面是后端代码:

public function column(){
        $grade=D('school')->where(array('parent_id'=>1))->select();
        $school = D('schooll')->select();
        $this->assign('school',$school);
        $this->assign('grade',$grade);
        if(IS_POST){
          $data_p = I('post.');
        if ($data_P['sno']==' ') {
                 $this->ajaxReturn(array('nr' => '学号已存在!', 'sf' => 0));
          }elseif($data_P['sname']==' '){
                 $this->ajaxReturn(array('nr' => '姓名不为空!', 'sf' => 0));
            }elseif($data_P['grade']==' '){
                  $this->ajaxReturn(array('nr'=> '不为空','sf'=>'0'));
            }elseif($data_P['major']==' '){
                  $this->ajaxReturn(array('nr'=>'不为空','sf'=>'0'));
            }elseif($data_P['classs']==' '){
                  $this->ajaxReturn(array('nr'=>'不为空','sf'=>'0'));
            }elseif($data_P['school']==' '){
                  $this->ajaxReturn(array('nr'=>'不为空','sf'=>'0'));
            }else{
          $student = M('student')->add(array('sno'=>$data_p['sno'],'passwd'=>md5($data_p['passwd']),'sname'=>$data_p['sname'],'zt'=>$data_p['checkresult'],'majorname'=>$data_p['major'],'classname'=>$data_p['classs'],'gradename'=>$data_p['school'],'schoolname'=>$data_p['grade']));
              }
              if ($student) {
                        $this->ajaxReturn(array('nr' => '添加成功'.$data_P['major'], 'sf' => 0));
                    } else {
                        $this->ajaxReturn(array('nr' => '添加失敗!', 'sf' => 0));
                      }
                  }
         $this->display('index/column');
        }

        public function upload() {
                if (!empty($_FILES)) {
                  $config = array(
                'exts' => array('xlsx','xls'),
                'maxSize' => 3145728,
                'rootPath' =>"./Excel/",
                'subName' => array('date','Ymd'),
           );

           $upload = new \Think\Upload($config);

            if (!$info = $upload->upload()){

               $this->error($upload->getError());
                
              }else{
          
           //vendor('PHPExcel.PHPExcel');/////引入类库

           //vendor('PHPExcel.Reader.Excel5');
           import("vendor.PHPExcel");
           import("vendor.PHPExcel.Reader.Excel5");
           $objPHPExcel = new \PHPExcel();/////初始化引入的方法

           $PHPReader=new \PHPExcel_Reader_Excel5();

          $file_name=$upload->rootPath.$info['excel']['savepath'].$info['excel']['savename'];
            }
            $objReader = $PHPReader->load($file_name);
              
         $extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
              //判断导入表格后缀格式
                if ($extension == 'xlsx') {

                    $objReader =\PHPExcel_IOFactory::createReader('Excel2007');

                    $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
                      
                } elseif($extension == 'xls'){

                    $objReader =\PHPExcel_IOFactory::createReader('Excel5');

                    $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
                       
               }

          $sheet =$objPHPExcel->getSheet(0);//获取表中第一个工作表

          $highestRow = $sheet->getHighestRow();//取得总行数

          $highestColumn =$sheet->getHighestColumn(); //取得总列数
          
          for($currentRow=1;$currentRow<=$highestRow;$currentRow++){

            for($currentColumn='A';$currentColumn<=$highestColumn;$currentColumn++){
              $address=$currentColumn.$currentRow;
              $arr[$currentRow][$currentColumn]=$sheet->getCell($address)->getValue();
            }
      for ($i = 2; $i <= $highestRow; $i++) {

          $data_p['sno'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();

         $passwd =$objPHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();

            $data_p['passwd']=md5($passwd);

         $data_p['sname'] =$objPHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();

         $data_p['zt'] = '0';

         $data_p['majorname'] = $objPHPExcel->getActiveSheet()->getCell("D". $i)->getValue();

         $data_p['classname'] =$objPHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();

         $data_p['gradename'] =$objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();

         $data_p['schoolname'] =$objPHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();

         $ex=M('Student')->add($data_p);
              }
      if($ex){
                $this->success('导入成功!');
         }else{
                $this->error("请选择上传的文件");

                  }

    }
}
             


         好的具体的就是这些。哪里不懂可以留言1119702968@qq.com咨询。

Thinkphp使用phpexcel导入文件并写入数据库的更多相关文章

  1. Thinkphp 用PHPExcel 导入Excel

    搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...

  2. (OAF)jdeveloper集成log4j并将日志输出到指定文件并写入数据库

    参考: How to configure Log4j in JDev 11g Ever wanted to use log4j in your adf project ? Well though Or ...

  3. nio实现文件读取写入数据库或文件

    1.nio实现读取大文件,之后分批读取写入数据库 2.nio实现读取大文件,之后分批写入指定文件 package com.ally; import java.io.File; import java. ...

  4. PHPExcel使用-使用PHPExcel导入文件

    导入步骤: 1. 实例化excel读取对象 2. 加载excel文件 ----------------> ( 1>. 全部加载. 2>. 选择加载. ) 3. 读取excel文件 - ...

  5. Oracle数据泵远程导入文件到本地数据库

    --以dba身份登录 C:\Users\Administrator>sqlplus / as sysdba --创建用户 SQL> create user bfzg0828 identif ...

  6. 使用phpExcel导入Excel进入Mysql数据库

    1.http://phpexcel.codeplex.com/下载phpExcel 2. <? require_once 'PHPExcel.php'; require_once 'PHPExc ...

  7. ThinkPhp 使用PhpExcel导出导入多语言文件

    在ThinkPHP 里已经实现了多语言功能,只要在指定的目录下创建对应的语言文件并填充内容,即可实现多语言功能 而多语言的翻译却是一个很麻烦的事情,因为客户特定的行业问题导致我们翻译可能是不准确的 于 ...

  8. 十万级百万级数据量的Excel文件导入并写入数据库

    一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...

  9. ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例

    这篇文章主要介绍了ThinkPHP使用PHPExcel实现Excel数据导入导出,非常实用的功能,需要的朋友可以参考下 本文所述实例是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方 ...

随机推荐

  1. python日记

    今天学习了Python的一些基本知识,就是简单的输入输出.因为我安装的Python环境是3.6版本的,因此我说的自己体会到的问题都是基于这个版本而得出的问题,说一下今天感觉要注意的要点吧. 1.首先是 ...

  2. sublime中安装package control总是失败

    今天下载了个sublime编辑器,要运行vue文件,想让vue也能高亮显示,在网上搜了一下如何安装.但总是提示控制器没有安装Package Control:There are no packages ...

  3. 关于php的命名空间

    php定义命名空间要使用namespace关键字,例:namespace Database 使用命名空间中的类要使用use关键字,也可以在use后面加as给类取别名,例:use Database\SQ ...

  4. C++图形编程之graphics.h头文件

    graphics.h是Turbo C的针对DOS下的一个C语言图形库,如果要用的话应该用TC的编译器来编译,但是如果需要在vc及vs环境中使用graphics.h的功能,则可以选择下载EasyX图形库 ...

  5. 原生JS实现图片放大镜插件

      前  言 我们大家经常逛各种电商类的网站,商品的细节就需要用到放大镜,这个大家一定不陌生,今天我们就做一个图片放大镜的插件,来看看图片是如何被放大的…… 先看一下我们要是实现的最终效果是怎么样的  ...

  6. 用git上传本地文件到github

    1.在自己的github账号下新建仓库--------得到github仓库地址 2.本地安装git---在将要克隆的文件夹下 右击点击Git Bash Here 3.输入命令 $ git clone ...

  7. js图片延迟加载如何实现

      这里延迟加载的意思是,拖动滚动条时,在图片出现在浏览器显示区域后才加载显示. 大概的实现方式是: 在页面的load没有触发之前,把所有的指定id的元素内的img放入到imgs中,将所有的图片的sr ...

  8. display:table 表格布局

    table 布局最大的特点 1.同行等高 2.宽度自动调节   那么table-cell是不是具备这个特点呢?答案是yes,为什么呢?css中有一个有意思的规则“创建匿名表格元素”.   拿table ...

  9. 快速学会使用Fiddler抓包 截包伪造提交包

    1.Fiddler介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑,移动设备和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的 ...

  10. php缓存模块apc可能导致php-fpm终止

    如果你的网站出现502错误.同时你网站中又使用了apc模块来做缓存处理.那么这篇文章兴许能帮到你. 首先,查看了php-fpm 的进程数. 发现php-fpm的进程数已经到达了php-fpm.conf ...