先整个最基础的代码,理解了这个,后面的就非常简单了

$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
$sheet = $objPHPExcel->getSheet();
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数 $s = $objPHPExcel->getActiveSheet()->getCell("A2")->getValue();

再给大家整个一点难度的,先说下思路。
1.上传excel文件,得到它的地址
2.写个处理exl的function,即可
实例代码演示:

public function upload(){
$files = $_FILES['exl']; // exl格式,否则重新上传
if($files['type'] !='application/vnd.ms-excel'){
$this->error('不是Excel文件,请重新上传');
} // 上传
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = ;// 设置附件上传大小
$upload->exts = array('xls');// 设置附件上传类型
$upload->rootPath = './Upload/'; // 设置附件上传根目录
$upload->savePath = 'excel/'; // 设置附件上传(子)目录
//$upload->subName = array('date', 'Ym');
$upload->subName = '';
// 上传文件
$info = $upload->upload(); $file_name = $upload->rootPath.$info['exl']['savepath'].$info['exl']['savename'];
$exl = $this->import_exl($file_name); // 去掉第exl表格中第一行
unset($exl[]); // 清理空数组
foreach($exl as $k=>$v){
if(empty($v)){
unset($exl[$k]);
}
};
// 重新排序
sort($exl); $count = count($exl);
// 检测表格导入成功后,是否有数据生成
if($count<){
$this->error('未检测到有效数据');
} // 开始组合数据
foreach($exl as $k=>$v){ $goods[$k]['goods_sn'] = $v; // 查询数据库
$where['goods_sn'] = array('like','%'.$v.'%');
$res = M('goods')->where($where)->find(); $goods[$k]['goods_name'] = $res['goods_name'];
$goods[$k]['goods_thumb'] = $res['goods_thumb'];
if($res){
// 是否匹配成功
$goods[$k]['is_match'] = '';
$f += ;
}else{
// 匹配失败
$goods[$k]['is_match'] = '';
$w += ;
} }
// 实例化数据
$this->assign('goods',$goods);
//print_r($f); // 统计结果
$total['count'] = $count;
$total['success'] = $f;
$total['error'] = $w;
$this->assign('total',$total); // 删除Excel文件
unlink($file_name);
$this->display('info'); }
/* 处理上传exl数据
* $file_name 文件路径
*/
public function import_exl($file_name){
//$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel"); // 这里不能漏掉
import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
$sheet = $objPHPExcel->getSheet();
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数 for($i=;$i<$highestRow+;$i++){
$data[] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();
}
return $data;
}

http://www.thinkphp.cn/code/2124.html

thinkphp3.2和phpexcel导入的更多相关文章

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

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

  2. ThinkPhp3.2.3 使用phpExcel导入数据

    public function uploadExcel(){ if (!empty($_FILES)){ $upload = new \Think\Upload(); // 实例化上传类 $uploa ...

  3. thinkphp3.2与phpexcel带图片生成 完美案例

    thinkphp3.2与phpexcel完美案例 // 导出exl public function look_down(){ $id = I('get.id'); $m = M ('offer_goo ...

  4. thinkphp phpexcel导入

    上次做了一个基于tp3.2.3的phpexcel导出,这次是phpexcel导入,准备材料phpexcel(不知道下载地址的查看我上一篇博文),虽说是基于thinkphp3.2.3来的,也只不过是引入 ...

  5. phpexcel导入数据提示失败

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

  6. Thinkphp 用PHPExcel 导入Excel

    搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...

  7. thinkphp中使用PHPEXCEL导入数据

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

  8. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

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

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

随机推荐

  1. web移动端开发技巧与注意事项汇总

    一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...

  2. Oracle Connect by与递归with

    层次查询 select * from emp; select empno, ename, job, mgr, sal, deptno,level lv, sys_connect_by_path(ena ...

  3. rhel7 单用户修改root密码

    rhel7密码忘记的时候,可以通过单用户模式修改密码 1.修改 引导文件,添加rw init=/sysroot/bin/sh ,ctrl+x启动 2.切换根chroot /sysroot3.使用pas ...

  4. Jsoup系列学习(1)-发送get或post请求

    简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据. 官 ...

  5. resize2fs命令使用

    如果我们创建一个loop设备然后将其挂载后,但是还要加大空间时,可以使用resize2fs命令来增大. 首先创建一个loop设备 dd 之后做成loop设备 losetup /dev/loop0 a. ...

  6. Struts2 讲解笔记

    1.第一个Struts2入门案例 1.找jar包 Struts2-core xwork-core ognl javasist freemarker commons-lang commons-io co ...

  7. 利用Oracle创建表空间和用户

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...

  8. Linux系统下输出某进程内存占用信息的c程序实现

    在实际工作中有时需要程序打印出某个进程的内存占用情况以作参考, 下面介绍一种通过Linux下的伪文件系统/proc 计算某进程内存占用的程序实现方法. 首先, 为什么会有所谓的 伪文件 呢. Linu ...

  9. win7下安装配置nodejs、使用npm安装express

    1.下载node http://nodejs.cn/download/ 这里下载自己需要的 我的环境是win764,下载地址是:https://nodejs.org/dist/v6.2.0/win-x ...

  10. 《中国文明史》系列—外柔 VS 内厉

    读启良的<中国文明史>,里面有谈到外柔而内厉——中国政府自古以来奉行的准则.大致意思是说,我华夏民族对待周边民族,历来是很友好的,即所谓的“柔”,而对待自己人,向来是“刚”或曰“厉”的. ...