基于ThinkPHP开发的PHPExcel导入

首先,我们还是要导入PHPExcel类文件。。。至于怎么导入。可以参考我写的导出的那篇文章(http://www.cnblogs.com/hopelooking/p/6230303.html)

但是我们在做导入功能的时候用到的类文件可不是导出时用到的那个类文件,但是文件夹一层包一层,没办法那样一个一个引用,还好,有一个文件

也就是我们做导出的时候用到的这个文件,这个文件里面有几行代码我们有没有注意到???

多了一行加载的文件!

是的,这个就是我们在做导入的时候需要的类文件

做完这一步以后其实还是有很多的bug需要我们调试一下的

运行的时候会报错

这个里面的PHPExcel没有找到

进去文件目录一看才发现实例化的时候失败了,那是因为文件路径的问题

还记得我们刚开始在控制器里面实例化的时候用到的路径吗?

我们直接用这样的方式就可以

有好几个文件报错,全部采用这种方式就可以了!

好了,我们下载的类文件现在经过调试已经完全适应了这个框架了!接下来就要实现代码了!

/* *excel导入 **/  public function ExcelIn(){      header("Content-type: text/html; charset=utf-8");//防止乱码    $file = $_FILES;//接收文件    $filename = $file[‘xls‘][‘tmp_name‘];//这里其实文件已经传过来了存放到了临时路径,所以我们必须要获取的是临时存放路径

      $PHPExcel = new \Org\Excel\PHPExcel();//因为我们是在一个类文件加载的同级文件夹的其他类文件,所以选择了包含文件,所以必须实例化包含我们要用的那个文件的文件      $objPHPExcel = \PHPExcel_IOFactory::load($filename);//加载接收文件的内容

    $sheetCount = $objPHPExcel->getSheetCount();//获取excel文件里面有多少个sheet      //注意,sheet的下标是从0开始,下边的这个for循环是针对一个或者多个sheet而言设计的,通用      for($i=0;$i<$sheetCount;$i++){          $data = $objPHPExcel->getSheet($i)->toArray();//读取每一个sheet里面的数据并且放入到一个数组中          unset($data[0]);

          //循环遍历入库          foreach($data as $key=>$v){              $loan = M("loan");              $da[‘corporate‘] = $v[1];              $da[‘img‘] = $v[2];              //。。。还可以写很多你想要的数据

              $loan->add($da);          }      }

  }

导入的代码相对来讲还是比较简单的!

解释:

为什么会销毁数组中的某一个数组?这是因为我们删除的是表格中第一行的标题,因为这个东西不是有效数据

没错,数组中第一个数组就是绿背景的内容,这些数据我们是不需要入库的,所以要删掉

接下来就是循环遍历入库了。。。便可以自由发挥了!

原文地址:https://www.cnblogs.com/findher/p/10610313.html

时间: 2024-10-28 10:13:57

基于ThinkPHP开发的PHPExcel导入的相关文章

基于ThinkPHP开发的PHPExcel导出

首先我们需要去PHPExcel官网下载开源包 下载好了以后只需要把里面的classes文件夹解压出来就可以用了! 在ThinkPHP中,文件的命名空间还是很重要的,我试着按照其他的第三方命名写namespace但是还是不行,最后我是这么做的 第一步:重命名classes为Excel,并且将文件夹内的PHPExcel.php重命名成PHPExcel.class.php 然后放入到目录文件 然后在控制层导入,直接use的话是会报错找不到类文件的...也许是内核里面的路由问题,于是我是在实例化的时候写

基于thinkphp开发的项目部署到由宝塔面板创建的LNMP服务器上解决路径出错问题

一. 环境与版本: 主机:amazon aws EC2主机 系统:Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1039-aws x86_64) 面板:宝塔免费版 6.9.5 服务:Nginx 1.16, PHP 7.2, MySQL 5.7.22(运行在amazon的RDS上,没通过宝塔面板安装,本文讨论内容不涉及数据库) 程序:ThinkPHP 5.0.24 二. 部署过程 1. 在云端开通并启动主机,做一点点必要的升级和小配置(省略,找主机商网站). 2. 登录

Thinkphp 用PHPExcel 导入Excel

搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有PHPExcel类库, 点这里下载 https://github.com/Zmwherein/PHPExcel.git 然后把它放在 \ThinkPHP\Library\Vendor(个人喜好, 能引入就行了) 如图: PHPExcel.php 类似一个入口文件. 可以进去看看里面写的方法是怎个跑法.

php开发中Excel导入功能的具体实现方法

对于在做php开发项目中,一般的项目设计到最多用到的是Excel的导出功能,而对于其导入功能一般是很少见的,而且对于php开发中Excel的导入功能也要比导出功能开发起来更困难一些,那么今天就来分享一下php开发中Excel导入功能的具体实现步骤: 1.首先将下载下来的PHP Excel插件代码放入项目/Thinkphp/Extend/Vendor/下; 2.在模板添加导入功能; html代码实现如下:<form action="{:U('Turntable/imports')}"

tp phpexcel 导入后台访问方法

public function addall(){ $Water = M('Waterrate'); $config = array( 'maxSize' => 0, 'rootPath' => 'Public', 'savePath' => '/Home/excel/', 'saveName' => array('uniqid',''), 'exts' => array('xlsx','xls'), ' autoSub' => false, 'subName' =&g

IDEA基于kotlin开发android程序配置小结

IDEA功能极其强大,和微软的宇宙第一IDE不相上下.用了很长时间,对它配置的完善性产生了近乎迷信的感情.似乎只要走正常渠道,用它来配置,没有不成功的. IDEA是开发android原生程序的利器,android studio即是基于IDEA开发的工具.AndroidStudio能干的,IDEA同样能干的很好.kotlin是jetbrain开发的语言,堪称android上的swift,而且完美兼容java,配合起来相当爽利.但偏偏在kotlin的配置上,栽了个大跟头. 在android里引入ko

基于thinkphp的uploadify上传图功能

php Action server端 <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of UploadAction * * @author hxwj */ class UploadAction extends CommonAction{ public function _initialize(){ //

基于 Quartz 开发企业级任务调度应用--转

Quartz 基本概念及原理 Quartz Scheduler 开源框架 Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现.该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目.读者可以到 http://www.quartz-scheduler.org/站点下载 Quartz 的发布版本及其源代码.笔者在产品开发中使用的是版本 1.8.4,因此本文内容基于该版本.本文不仅介绍如何应用 Quar

ExtMVC+ThinkPHP开发CRM管理系统--导航树的实现

最近很是郁闷,因不明原因本机的开发的后台管理程序无法访问.模仿其他大侠给你的导航树(ExtJSMVC)到我这里没有效果.甚至一气之下删除了自己写的一周的代码样例,莫非是本月运势不好,不抱怨了(哈哈!无非是给自己近期没有更新博客找个借口). 进入正题今天分享一个通过后台访问mysql数据库,加载前台导航树的完整案例. 前期准备: 后台创建mySql数据库及相应表结构: MI_ID                    int(11) MI_MenuName              varchar