Thinkphp框架下PHPExcel实现excel数据的批量化导入

第一步:下载官方的PHPExcel文件,下载地址https://github.com/PHPOffice/PHPExcel

第二步:解压打开,将PHPExcel\Classes\全部文件拷贝到thinkhp项目的根目录\ThinkPHP\Library\Vendor\,如下图所示

第三步:

HTML代码如下:

<form action="{:U(‘Index/impUser‘)}" method="post" enctype="multipart/form-data">
      <input type="file" name="import"/>
      <input type="submit" value="提交"/>
</form>

控制器层实现如下代码:

function impUser(){
        if (!empty($_FILES)) {
            //import("@.ORG.UploadFile");
            $config=array(
                ‘exts‘=>array(‘xlsx‘,‘xls‘),
                ‘rootPath‘=>"./Public/",
                ‘savePath‘=>‘Upload/‘,
                //‘autoSub‘    =>    true,
            );
            $upload = new \Think\Upload($config);

            if (!$info=$upload->upload()) {
                $this->error($upload->getError());
            } /*else {
                //$info = $upload->getUploadFileInfo();
            }
            */

            vendor("PHPExcel.PHPExcel");
            $file_name=$upload->rootPath.$info[‘import‘][‘savepath‘].$info[‘import‘][‘savename‘];
            // var_dump($file_name);
            // exit;
            $objReader = \PHPExcel_IOFactory::createReader(‘Excel5‘);
            $objPHPExcel = $objReader->load($file_name,$encode=‘utf-8‘);
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); // 取得总行数
            $highestColumn = $sheet->getHighestColumn(); // 取得总列数
            for($i=4;$i<=$highestRow;$i++)
            {
                $data[‘name‘] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
                $data[‘age‘] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
                $data[‘school‘]= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();=$data[‘jion_time‘]= gmdate("Y-m-d H:i:s", \PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue()));//其中gmdate函数是对excel表格中的时间进行格式化处理

                M(‘detail_config‘)->add($data);

            }
            $this->success(‘导入成功!‘,‘index‘);
        }else
        {
            $this->error("请选择上传的文件");
        }
    }
时间: 2024-10-11 07:11:23

Thinkphp框架下PHPExcel实现excel数据的批量化导入的相关文章

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

这篇文章主要介绍了ThinkPHP使用PHPExcel实现Excel数据导入导出,非常实用的功能,需要的朋友可以参考下 本文所述实例是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错造成的,如果有问题大家务必要对路劲是否引用正确进行测试. 具体操作步骤如下: (一)导入Excel 第一,在前台html页面进行上传文件:如: <form method="post"

使用phpExcel实现Excel数据的导入导出(完全步骤)

使用phpExcel实现Excel数据的导入导出(完全步骤) 很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题. 首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用

thinkphp框架下session 存入mongo

最近做系统的时候处理到session入数据库问题 , 由于是在thinkphp框架下, 查看了下框架session相关代码, 发现原框架默认支持mysql数据库 , 于是对原Session驱动做了相应修改 , 使其支持mongo数据库存储session 修改的相关文件是\Think\Session\Driver\Db\Db.class.php , 本人使用的是TP3.2,2版本 , 修改后的Db.class.php代码如下: <?php namespace Think\Session\Drive

PHPExcel将Excel数据导入数据库

1 <?php 2 //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: 3 //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据保存进数据库 4 require_once "./PHPExcel.class.php"; 5 require_once "./PHPExcel/Cell/DataType.php"; 6 require_once "./PHPExcel/IOFa

Thinkphp框架下(同服务器下)不同二级域名之间session互通共享设置

在Thinkphp框架下根目录打开index.php 在头部加入如下代码即可: //入口文件 define('DOMAIN','abc.com');//abc.com换成自己的跟域名 //以下两行是为了子域名共享SESSION 注意 DOMAIN 需要改为实际的域名 ini_set('session.cookie_path', '/'); ini_set('session.cookie_domain', DOMAIN);

thinkphp框架下404页面设置

404页面即系统在找不到请求的操作方法和找不到请求的控制器名称时的一种报错行为的优化. 第一步:在thinkphp框架中的Home/Comtroller中建一个EmptyController.class.php,其代码如下: <?phpnamespace Home\Controller;use Think\Controller;class EmptyController extends Controller{     //空操作_empty()方法    function _empty(){  

ssm框架下怎么批量删除数据?

ssm框架下批量删除怎么删除? 1.单击删除按钮选中选项后,跳转到js函数,由函数处理 2. 主要就是前端的操作 js 操作(如何全选?如何把选中的数据传到Controller中) 3.fun()函数(前端) /*添加删除选中栏*/ function fun(){ //给删除选中按钮添加单击事件 document.getElementById("delSelected").onclick = function(){ if(confirm("您确定要删除选中条目吗?"

Thinkphp框架下连接两个及以上的数据库方法

在我们的实际开发者,我们经常需要链接两个以上的数据库,方法跟简单 Thinkphp文档中也有介绍:点击查看 方法如下: 第一步:配置文件config.php <?php //默认数据库1 return array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '10.10.10.10', // 服务器地址 'DB_NAME' => 'user', // 数据库名 'DB_USER' => 'roo

ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化

php初学者,有什么不对的还请指正. 首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonnal是select的最近一层div,info内是字符串拼接,jq标签插入用append方法.接下来是调整css样式,使div会随着标签增加而加大,这里要用一个css属性overflow(亲自查),这里直接在divselectAchivePersonnal使用时不会达到你想要的效果,所以至少要有两个嵌