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.搭建环境 2.创建项目 3.设计模型 4.管理站点 5.视图及URL 6.模板 软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职, ...
- SpringMVC概述
1. SpringMVC是什么 SpringMVC 是 Spring 框架内置的 MVC 的实现.SpringMVC 就是一个 Spring 内置的 MVC 子框架 Spring 子框架:意味着 Sp ...
- 最新版 IntelliJ IDEA2018.3.x 破解教程
https://www.cnblogs.com/Candies/p/10050831.html
- tp框架设置404页面
无法加载模板跳向404页面 /thinkphp/library/think/Dispatcher.class.php中176行 // 加载模块的扩展配置文件 load_ ...
- ORACLE 根据 sql_id 查询绑定变量的传入值
查询当前查询: select b.NAME,b.POSITION,b.DATATYPE_STRING,b.VALUE_STRING,b.LAST_CAPTUREDfrom v$sql_bind_cap ...
- Linux awk学习
零.awk标准语法 [root@wohaoshuai1 bbb]# echo "abcd" |awk 'BEGIN{print "wohaoshuai"} /a ...
- Spring异步调用原理及SpringAop拦截器链原理
一.Spring异步调用底层原理 开启异步调用只需一个注解@EnableAsync @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTI ...
- 翻转 -- CodeForces - 56B
题目链接: https://cn.vjudge.net/problem/25167/origin 思路: 这是一道水题,但是一开始思路有点问题.. 1000的数据大小,直接暴搜左开始第一个与i不等的下 ...
- Angularjs判断页面是否已经渲染结束(动态给标签长度)
相信大家都会碰到这样的问题.页面循环li.但是因为个数不知道.没有办法给li设置固定宽度.那么这时就需要动态计算数据长度并动态改变li的宽度 <!--周边信息--> <div cla ...
- hook NtTerminateProcess进行应用的保护
这段时间在学习驱动,然后看到hook ssdt的代码,找了一个写的清晰的学习了一下:http://www.netfairy.net/?post=218 这里是hook NtOpenProcess,但是 ...