ThinkPhp3.2.3 使用phpExcel导入数据
- public function uploadExcel(){
- if (!empty($_FILES)){
- $upload = new \Think\Upload(); // 实例化上传类
- $upload->maxSize = 10485760000 ; // 设置附件上传大小
- $upload->exts = array('xls','xlsx'); // 设置附件上传类型
- $upload->rootPath = './Public/excel/'; // 设置附件上传根目录
- $upload->autoSub = false; // 将自动生成以photo后面加时间的形式文件夹,关闭
- // 上传文件
- $info = $upload->upload(); // 上传文件
- $exts = $info['file']['ext']; // 获取文件后缀
- $filename = $upload->rootPath.$info['file']['savename']; // 生成文件路径名
- if(!$info) { // 上传错误提示错误信息
- $this->error($upload->getError());
- }else{ // 上传成功
- import("Org.Util.PHPExcel"); // 导入PHPExcel类库,因为PHPExcel没有用命名空间,只能import导入
- $PHPExcel = new \PHPExcel(); // 创建PHPExcel对象,注意,不能少了\
- if ($exts == 'xls') { // 如果excel文件后缀名为.xls,导入这个类
- import("Org.Util.PHPExcel.Reader.Excel5");
- $PHPReader = new \PHPExcel_Reader_Excel5();
- } else
- if ($exts == 'xlsx') {
- import("Org.Util.PHPExcel.Reader.Excel2007");
- $PHPReader = new \PHPExcel_Reader_Excel2007();
- }
- // var_dump($filename);exit;
- $PHPExcel=$PHPReader->load($filename);
- $currentSheet = $PHPExcel->getSheet(0); // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
- $allRow = $currentSheet->getHighestRow(); // 获取总行数
- // echo $allRow;exit;
- $data=array();
- for ($i = 2; $i <= $allRow; $i++) {
- $data['province'] =$PHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
- $data['city'] =$PHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();
- $data['vocation'] =$PHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();
- $data['age'] = $PHPExcel->getActiveSheet()->getCell("D". $i)->getValue();
- $data['sex'] =$PHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();
- $data['company'] =$PHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();
- $data['phone'] =(string)$PHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();
- $data['other'] =$PHPExcel->getActiveSheet()->getCell("H" . $i)->getValue();
- $ex=M('phone')->add($data);
- }
- // var_dump($data_p);exit;
- if($ex){
- $this->success("导入成功",U('Phone/index'));
- }else{
- $this->error("导入失败,原因可能是excel表中格式错误",U('Phone/add'),"5");// 提示错误
- }
- }
- }else {
- $this->display('Phone/add');
- }
- }
- ---------------------
- 作者:limingyue0312
- 来源:CSDN
- 原文:https://blog.csdn.net/limingyue0312/article/details/81240017
ThinkPhp3.2.3 使用phpExcel导入数据的更多相关文章
- ThinkPHP第二十三天(Category表结构、PHPExcel导入数据函数)
1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql ...
- phpexcel导入数据提示失败
phpexcel导入excel时明明只有几行数据,却提示506行失败,原来是excel中有506行"无效数据"(看起来是空的,但是和没有数据不一样).
- thinkphp中使用PHPEXCEL导入数据
导入方法比较简单 但必须考虑到Excel本身单元格格式问题 例如以0开头的字符串读出来被去掉了前导0 成为float型而丢失一位 必须进行处理 <?php /** * Author lizhao ...
- phpexcel导入数据出现PHPExcel_RichText Object解决办法
在导入excel的时候会出现异常情况,有的问题出现PHPExcel_RichText object,错误代码如下 PHPExcel_RichText Object ( [_richTextElemen ...
- 使用PHPEXCEL导入数据到数据库
导出功能参考:http://www.cnblogs.com/zhouqi666/p/5978017.html 比较严重的问题:当遇到excel数据量比较大的时候,会发生内存溢出的情况,目前无法解决 e ...
- phpexcel导入数据部分数据有误
数据在excel中是这样的: 插入数据库后是这样的: 很难发现,出错的那几条数据中的单元格中都有英文','符号,而phpexcel又是以','来拼接读取到的数据的. 解决办法:修改代码中的','为不常 ...
- PHPexcel导入数据的时候出现object解决方法
打印其他数据都是正常的,就这个是一个对象 从表格里面看不出问题 后面找到原因是表格里那个名字 李珊珊 周围有空白字符,去掉之后就能正常导入, 解决方法: 找到导入文件的那个方法 ...
- phpexcel导入数据库 基于thinkphp3.2
public function studentImportExcel(){ if (!empty ( $_FILES)){ $upload = new \Think\Upload(); ...
- ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input <load file="__PUBLIC__/js/jquery-1. ...
随机推荐
- django 第四天
简单的一对多的页面 实现的页面结果如下 利用正则匹配 1.x系列和2.x系列django的用法不同,....他x的. 关于正则匹配 我一直没能实现,再试试吧 路由分发,尤其是在多个页面的时候 app0 ...
- SQL反模式学习笔记11 限定列的有效值
目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...
- 一致推崇的Linux系统还有那么安全吗?
今天想谈谈关于系统安全:我们都知道,Linux早已成为趋势,在我们互联网中占有不可或缺的地位,在我们眼中,它是神圣的,不可替代的,无懈可击的:真的是这样的吗? 但是关于病毒对Linux所造成的一系列威 ...
- CSS 实现左侧固定,右侧自适应两栏布局的方法
"左边固定,右边自适应的两栏布局",其中有老生常谈的float方法,BFC方法,也有CSS3的flex布局与grid布局.并非所有的布局都会在开发中使用,但是其中也会涉及一些知识点 ...
- windows server 简化设置
win2012任务管理器显示磁盘管理员运行命令提示符,diskperf -y 不要开机密码 运行 netplwiz 勾去掉 运行 gpedit.msc 计算机设置-Windows设置 -安全设置-帐户 ...
- 安卓开发app在后台运行时页面数据被系统清除后操作之重启APP
在安卓开发过程中,当点击HOME键,将app运行在后台时,然后再点击app图标进入时,遇到了如下两种情况: 1.每次打开时,app的入口页面总是被执行. 2.当运行内存被其它应用占用完时,在进入app ...
- BZOJ.2616.SPOJ PERIODNI(笛卡尔树 树形DP)
BZOJ SPOJ 直观的想法是构建笛卡尔树(每次取最小值位置划分到两边),在树上DP,这样两个儿子的子树是互不影响的. 令\(f[i][j]\)表示第\(i\)个节点,放了\(j\)个车的方案数. ...
- LOJ #6192. 「美团 CodeM 复赛」城市网络 (树上倍增)
#6192. 「美团 CodeM 复赛」城市网络 内存限制:64 MiB 时间限制:500 ms 标准输入输出 题目描述 有一个树状的城市网络(即 nnn 个城市由 n−1n-1n−1 条道路连接 ...
- Java反射通过getter和setter方法实现类的拷贝
private User copyFieldValues(User userData, User user) { Field[] fields = user.getClass().getDeclare ...
- ECMA Script 6_行为重定义 Proxy
行为重定义 Proxy 在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截 因此提供了一种机制,可以对外界的访问进行过滤和改写 Proxy 这个词的原意是代理,用在这里表示由它来 ...