ThinkPhp5.1 + PHPExcel制作数据导入

数据导入,在很多地方都会有需要,如何使用thinkphp5.1制作数据导入,接下来小编带大家去了解整个过程。

1 准备工作

小编是通过PHPExcel实现数据导入的,所以在制作之前首先需要下载PHPExcel相关组件,目前tp5.1支持composer安装,小编就是通过composer安装的PHPExcel组件。【推荐:thinkphp视频教程】

在安装之前首先需要确定自己的电脑上有composer组件,如果还没有安装 Composer,在 Linux 和 Mac OS X 中可以运行如下命令:

curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer

在 Windows 中,你需要下载并运行 Composer-Setup.exe,下载地址:

立即学习“PHP免费学习笔记(深入)”;

https://www.kancloud.cn/manual/thinkphp5_1/353948

安装好composer之后,就是安装PHPExcel了,win+R,打开运行界面,输入cmd,进入管理界面,输入你的项目所在的盘符(此处以D盘为例,项目在D:phpstudy_proWWWmyapp.io),然后点击回车:

1.png

输入:cd D:phpstudy_proWWWmyapp.io,定位到项目所在目录

2.png

接下来就是安装PHPExcel插件,输入:composer require phpoffice/phpexcel,点击回车,即可开始安装PHPExcel。

2 前端提交页面

html

        
注:

1.文件大小:请上传小于10M的文件

2.文件类型:上传时首先 下载导入模板 ,填好信息后上传

js

    layui.use(['form', 'layer','upload'], function () {        $ = layui.jquery;        var form = layui.form            , layer = layui.layer;        var $ = layui.jquery,            upload = layui.upload;        upload.render({            elem: '#test3'            ,url: '你的上传路径'            ,accept: 'file' //普通文件            ,exts: 'xls|xlsx'            ,size:'10240'            ,done: function(res){                $('#test3').append('')            }        });        //监听提交        form.on('submit(add)', function(data){            console.log(data);            //发异步,把数据提交给php            $.post('{:url('saveImportMember')}',$('form').serialize(),function(data){                if(data.res == 1){                    layer.msg(data.msg);                    setTimeout(function(){parent.window.location.reload();},1000);                }else if(data.res == 0){                    layer.alert(data.msg,{icon: 2});                }else{                    layer.alert('操作失败',{icon: 2});                }            })            return false;        });    });

3 后台处理

这里以上传一张会员信息表为例,包含的字段值有:姓名(name)、性别(sex)、会员类型(type_id)、身份证号(identity)、会员编号(number)、联系电话(telephone)、排序(sort)、会员状态(status)。

//上传excel文件$file = Request::param('file');//获取文件路径$filePath = Env::get('root_path').'public'.DIRECTORY_SEPARATOR.$file;if($filePath == ''){    return ['res'=>0,'msg'=>'你上传的文件为空'];}$suffix = $this->DbSy->GetFileExt($file);//判断哪种类型if($suffix=="xlsx"){    $reader = PHPExcel_IOFactory::createReader('Excel2007');}else{    $reader = PHPExcel_IOFactory::createReader('Excel5');}//载入excel文件$excel = $reader->load("$filePath",$encode = 'utf-8');//读取第一张表$sheet = $excel->getSheet(0);//获取总行数$row_num = $sheet->getHighestRow();//获取总列数$col_num = $sheet->getHighestColumn();$time = time();$data = []; //数组形式获取表格数据$count = 0;$total = 0;$error_count = 0;for ($i = 2; $i getCell("A".$i)->getValue();    $sex = $sheet->getCell("B".$i)->getValue();    $identity = $sheet->getCell("C".$i)->getValue();    $telephone = $sheet->getCell("F".$i)->getValue();    $data['sort'] = $this->DbSy->getSort(5,'sort desc',array('type_id'=>$type_id));    if(!$identity){        return ['res'=>0,'msg'=>'身份证号不能为空'];    }    $data['identity'] = $identity;    if(!$name){        return ['res'=>0,'msg'=>'姓名不能为空'];    }    $data['name'] = $name;    if($sex=='男'){        $data['sex'] = 1;    }elseif ($sex=='女'){        $data['sex'] = 2;    }else{        $data['sex'] = 3;    }    $data['identity'] = $identity;    $data['number'] = $this->DbSy->getNumber(5,'sort desc',array('type_id'=>$type_id));       if($telephone){        $data['telephone'] = $telephone;    }else{        $data['telephone'] = '';    }    $data['status'] = 5;    $member = $this->DbSy->FindWhere(5,array('name'=>$name,'identity'=>$identity,'type_id'=>$type_id));    if($member){        /*$data['updatetime'] = time();*/        $info = $this->DbSy->editContent(5,$data,array('id'=>$member['id']));        if($info){            $total++;        }    }else{        // 读取单元格        $data['addtime'] = time();        $data['updatetime'] = time();        $info = $this->DbSy->insertGetId(5,$data);        if($info){            $count++;        }else{            $error_count++;        }    }}$msg =  "成功导入".$count."条数据,重复".$total."条数据,导入失败".$error_count."条数据";if($count > 0){    return ['res'=>1,'msg'=>$msg];}else{    return ['res'=>0,'msg'=>$msg];}

以上就是小编总结的利用TP5.1+PHPExcel制作信息导入的所有流程,希望对大家有所帮助。

以上就是ThinkPhp5.1 + PHPExcel制作数据导入的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/72409.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月13日 15:55:57
下一篇 2025年11月13日 16:22:24

相关推荐

  • PHP开发技巧:如何使用PHPExcel操作MySQL数据库

    php开发技巧:如何使用phpexcel操作mysql数据库 随着互联网的蓬勃发展,大量的数据被存储于数据库中,并且需要进行导入、导出、处理等操作。在PHP开发中,PHPExcel是一个强大的库,可以简化与Excel文件的交互,实现数据的导入与导出。本文将介绍如何使用PHPExcel来操作MySQL…

    数据库 2025年11月28日
    000
  • PHP开发技巧:如何使用PHPExcel和PHPExcel_IOFactory操作MySQL数据库

    php开发技巧:如何使用phpexcel和phpexcel_iofactory操作mysql数据库 概述:在Web开发中,处理Excel文件是一个常见且重要的任务。PHPExcel是一个功能强大而且易于使用的PHP库,它可以帮助我们读取和写入Excel文件。本文将介绍如何使用PHPExcel和PHP…

    2025年11月25日
    000
  • 一文讲解thinkphp引用PHPExcel类库的方法

    下面thinkphp框架教程栏目将给大家介绍关于thinkphp怎么引用phpexcel类库,希望对需要的朋友有所帮助! 问题描述: thinkphp3.2.3 如何引用PHPExcel类库? 引入文件目录位置 ThinkPHPLibraryOrgUtilPHPExce(文件夹)PHPExcel.p…

    2025年11月25日 PHP框架
    000
  • thinkphp5.1和php、vue.js实现前后端分离和交互

    下面由thinkphp框架教程栏目给大家介绍thinkphp5.1和php、vue.js实现前后端分离和交互,希望对需要的朋友有所帮助! 主要目标是使用vue.js把前端获取的账号和密码传到后台,然后使用tp5.1框架获取前端的值,并返回token等一些值。然后使用localstorage.seti…

    PHP框架 2025年11月15日
    000
  • 解决thinkphp5.1上传宝塔服务器报错问题

    下面由%ignore_a_1%教程栏目给大家介绍thinkphp5.1上传宝塔服务器报错的解决方法,希望对需要的朋友有所帮助! 解决方法一:把宝塔的open_basedir选项不勾选,这样网站就可以访问了,但是不安全,放跨域攻击就没有了,其他解决方法还没有找到 相关教程推荐:《宝塔》 以上就是解决t…

    2025年11月15日
    000
  • 手把手教你使用ThinkPHP+phpExcel导入导出Excel数据(实践)

    php如何导入带图片的excel表格呢?图片又如何导出到excel中呢?导出的excel如何定义样式使其更加漂亮?下面本篇文章就来给大家一一解决,希望对大家有所帮助! Excel 是常用的数据整理统计的工具,通常在一些信息化平台中为了更好的实现无纸化或者上云,需要对办公数据进行迁移,从办公电脑迁移到…

    2025年11月14日 PHP框架
    000
  • 分析 thinkphp5 显示render不兼容问题

    下面thinkphp框架教程栏目将给大家介绍关于tp5自定义全局异常处理提示render不兼容问题,希望对需要的朋友有所帮助! 【填坑】TP5自定义全局异常处理提示render不兼容 TP5自定义全局异常处理,所有抛出的异常都通过自定义render方法渲染,再返回客户端显示。需要自定义handle的…

    2025年11月13日 PHP框架
    000
  • thinkphp5.1是否支持extra

    thinkphp5.1不支持extra,thinkphp5.1中config函数已经取消了extra的支持;可以将“function editConfig($arr = [] ,$user=’admin’){…}”代码贴入app或者application文件夹内的…

    2025年11月12日
    000
  • thinkphp5.1怎么关闭缓存

    thinkphp5.1关闭缓存的方法:1、找到“ThinkPHPCommonconvention.php”和“ThinkPHPCommondebug.php”文件;2、在debug.php中修改内容为“’TMPL_CACHE_ON’=>false,”;3、在conven…

    2025年11月12日
    000
  • 记录Nginx怎么配置TP5.1及所遇问题

    下面thinkphp框架教程栏目将给大家介绍关于nginx怎么配置thinkphp5.1以及遇到的问题的解决方法,希望对需要的朋友有所帮助! 1.Nginx用户对项目目录的访问权限cd /usr/local/nginx/html/setfacl -m u:nginx:rwx -R ../html2.…

    2025年11月6日 PHP框架
    000
  • 使用ThinkPHP创建TP5.1项目

    在前面,我们安装了thinkphp之后,那么如何用thinkphp开发项目呢? 1、 打开application/index/controller/Index.php,我们可以看到有如下代码。 <?phpnamespace appindexcontroller;class Index{ pub…

    2025年11月6日 PHP框架
    000
  • ThinkPHP5.1:数组对象查询的使用

    用过5.0的开发者都比较依赖5.0的数组查询方式,但是很无奈5.1的数组查询方式和5.0的区别很大,因此经常听到开发者抱怨5.1的数组查询不好用。 首先,出于安全和易用性的原因,官方是不推荐使用数组查询条件的,其次,你也许不知道5.1版本其实提供了一个新的数组对象查询的方式用以替代之前的数组条件。如…

    2025年11月3日 PHP框架
    000
  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明

    很多时候,在项目开发的时候需要用到微信支付接口调用,例如:商城制作、在线缴费、保险缴费等等,小编最近做了几个水费收费系统、保函出具系统、在线报名系统,均用到了微信支付,以下把微信支付的制作以及支付后的几种状态说明列出,希望对大家有所帮助。 1 微信支付 【扫码支付】 public function …

    2025年11月3日
    000

发表回复

登录后才能评论
关注微信