欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

thinkphp3.2和phpexcel导入

程序员文章站 2022-05-09 10:13:54
...
thinkphp3.2和phpexcel导入最基本用法
先整个最基础的代码,理解了这个,后面的就非常简单了$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(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数

$s = $objPHPExcel->getActiveSheet()->getCell("A2")->getValue();
表格内容:
thinkphp3.2和phpexcel导入
再给大家整个一点难度的,先说下思路。
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 = 3145728 ;// 设置附件上传大小
$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[0]);

// 清理空数组
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'] = '1';
$f += 1;
}else{
// 匹配失败
$goods[$k]['is_match'] = '0';
$w += 1;
}

}
// 实例化数据
$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(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数

for($i=1;$i $data[] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();
}
return $data;
}
thinkphp3.2和phpexcel带生成图片完美案例
http://www.thinkphp.cn/code/2112.html

云栖大会北京站:阿里技术专家难得出镜,这次一下来了100多位?!