1. public function uploadExcel(){
  2. if (!empty($_FILES)){
  3. $upload = new \Think\Upload(); // 实例化上传类
  4. $upload->maxSize = 10485760000 ; // 设置附件上传大小
  5. $upload->exts = array('xls','xlsx'); // 设置附件上传类型
  6. $upload->rootPath = './Public/excel/'; // 设置附件上传根目录
  7. $upload->autoSub = false; // 将自动生成以photo后面加时间的形式文件夹,关闭
  8. // 上传文件
  9. $info = $upload->upload(); // 上传文件
  10. $exts = $info['file']['ext']; // 获取文件后缀
  11. $filename = $upload->rootPath.$info['file']['savename']; // 生成文件路径名
  12. if(!$info) { // 上传错误提示错误信息
  13. $this->error($upload->getError());
  14. }else{ // 上传成功
  15. import("Org.Util.PHPExcel"); // 导入PHPExcel类库,因为PHPExcel没有用命名空间,只能import导入
  16. $PHPExcel = new \PHPExcel(); // 创建PHPExcel对象,注意,不能少了\
  17. if ($exts == 'xls') { // 如果excel文件后缀名为.xls,导入这个类
  18. import("Org.Util.PHPExcel.Reader.Excel5");
  19. $PHPReader = new \PHPExcel_Reader_Excel5();
  20. } else
  21.  
  22. if ($exts == 'xlsx') {
  23. import("Org.Util.PHPExcel.Reader.Excel2007");
  24. $PHPReader = new \PHPExcel_Reader_Excel2007();
  25.  
  26. }
  27. // var_dump($filename);exit;
  28. $PHPExcel=$PHPReader->load($filename);
  29. $currentSheet = $PHPExcel->getSheet(0); // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
  30. $allRow = $currentSheet->getHighestRow(); // 获取总行数
  31. // echo $allRow;exit;
  32. $data=array();
  33.  
  34. for ($i = 2; $i <= $allRow; $i++) {
  35. $data['province'] =$PHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
  36. $data['city'] =$PHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();
  37. $data['vocation'] =$PHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();
  38. $data['age'] = $PHPExcel->getActiveSheet()->getCell("D". $i)->getValue();
  39. $data['sex'] =$PHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();
  40. $data['company'] =$PHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();
  41. $data['phone'] =(string)$PHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();
  42. $data['other'] =$PHPExcel->getActiveSheet()->getCell("H" . $i)->getValue();
  43. $ex=M('phone')->add($data);
  44. }
  45. // var_dump($data_p);exit;
  46. if($ex){
  47. $this->success("导入成功",U('Phone/index'));
  48. }else{
  49. $this->error("导入失败,原因可能是excel表中格式错误",U('Phone/add'),"5");// 提示错误
  50. }
  51. }
  52. }else {
  53. $this->display('Phone/add');
  54. }
  55. }
  56. ---------------------
  57. 作者:limingyue0312
  58. 来源:CSDN
  59. 原文:https://blog.csdn.net/limingyue0312/article/details/81240017

ThinkPhp3.2.3 使用phpExcel导入数据的更多相关文章

  1. ThinkPHP第二十三天(Category表结构、PHPExcel导入数据函数)

    1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql ...

  2. phpexcel导入数据提示失败

    phpexcel导入excel时明明只有几行数据,却提示506行失败,原来是excel中有506行"无效数据"(看起来是空的,但是和没有数据不一样).

  3. thinkphp中使用PHPEXCEL导入数据

    导入方法比较简单 但必须考虑到Excel本身单元格格式问题 例如以0开头的字符串读出来被去掉了前导0 成为float型而丢失一位 必须进行处理 <?php /** * Author lizhao ...

  4. phpexcel导入数据出现PHPExcel_RichText Object解决办法

    在导入excel的时候会出现异常情况,有的问题出现PHPExcel_RichText object,错误代码如下 PHPExcel_RichText Object ( [_richTextElemen ...

  5. 使用PHPEXCEL导入数据到数据库

    导出功能参考:http://www.cnblogs.com/zhouqi666/p/5978017.html 比较严重的问题:当遇到excel数据量比较大的时候,会发生内存溢出的情况,目前无法解决 e ...

  6. phpexcel导入数据部分数据有误

    数据在excel中是这样的: 插入数据库后是这样的: 很难发现,出错的那几条数据中的单元格中都有英文','符号,而phpexcel又是以','来拼接读取到的数据的. 解决办法:修改代码中的','为不常 ...

  7. PHPexcel导入数据的时候出现object解决方法

    打印其他数据都是正常的,就这个是一个对象 从表格里面看不出问题 后面找到原因是表格里那个名字  李珊珊  周围有空白字符,去掉之后就能正常导入,         解决方法:   找到导入文件的那个方法 ...

  8. phpexcel导入数据库 基于thinkphp3.2

    public function studentImportExcel(){ if (!empty ( $_FILES)){ $upload = new \Think\Upload();        ...

  9. ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

    前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input <load file="__PUBLIC__/js/jquery-1. ...

随机推荐

  1. django 第四天

    简单的一对多的页面 实现的页面结果如下 利用正则匹配 1.x系列和2.x系列django的用法不同,....他x的. 关于正则匹配 我一直没能实现,再试试吧 路由分发,尤其是在多个页面的时候 app0 ...

  2. SQL反模式学习笔记11 限定列的有效值

    目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...

  3. 一致推崇的Linux系统还有那么安全吗?

    今天想谈谈关于系统安全:我们都知道,Linux早已成为趋势,在我们互联网中占有不可或缺的地位,在我们眼中,它是神圣的,不可替代的,无懈可击的:真的是这样的吗? 但是关于病毒对Linux所造成的一系列威 ...

  4. CSS 实现左侧固定,右侧自适应两栏布局的方法

    "左边固定,右边自适应的两栏布局",其中有老生常谈的float方法,BFC方法,也有CSS3的flex布局与grid布局.并非所有的布局都会在开发中使用,但是其中也会涉及一些知识点 ...

  5. windows server 简化设置

    win2012任务管理器显示磁盘管理员运行命令提示符,diskperf -y 不要开机密码 运行 netplwiz 勾去掉 运行 gpedit.msc 计算机设置-Windows设置 -安全设置-帐户 ...

  6. 安卓开发app在后台运行时页面数据被系统清除后操作之重启APP

    在安卓开发过程中,当点击HOME键,将app运行在后台时,然后再点击app图标进入时,遇到了如下两种情况: 1.每次打开时,app的入口页面总是被执行. 2.当运行内存被其它应用占用完时,在进入app ...

  7. BZOJ.2616.SPOJ PERIODNI(笛卡尔树 树形DP)

    BZOJ SPOJ 直观的想法是构建笛卡尔树(每次取最小值位置划分到两边),在树上DP,这样两个儿子的子树是互不影响的. 令\(f[i][j]\)表示第\(i\)个节点,放了\(j\)个车的方案数. ...

  8. LOJ #6192. 「美团 CodeM 复赛」城市网络 (树上倍增)

    #6192. 「美团 CodeM 复赛」城市网络 内存限制:64 MiB 时间限制:500 ms 标准输入输出   题目描述 有一个树状的城市网络(即 nnn 个城市由 n−1n-1n−1 条道路连接 ...

  9. Java反射通过getter和setter方法实现类的拷贝

    private User copyFieldValues(User userData, User user) { Field[] fields = user.getClass().getDeclare ...

  10. ECMA Script 6_行为重定义 Proxy

    行为重定义 Proxy 在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截 因此提供了一种机制,可以对外界的访问进行过滤和改写 Proxy 这个词的原意是代理,用在这里表示由它来 ...