thinkphp的excel的导入导出
Posted zjl10101314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp的excel的导入导出相关的知识,希望对你有一定的参考价值。
1 public function upload() 2 { 3 //设置响应头 4 header("Contec-Type=text.html;charset=utf-8"); 5 //实例化上传类 6 $upload=new ThinkUpload(); 7 //设置上传附件大小 8 $$upload->maxSizae=20480000; 9 //设置上传附件类型 10 $upload->exts=array(‘xls‘,xlsx); 11 //设置文件上传目录 12 $upload->savPath="/"; 13 //上传文件 14 $info=$upload->uploadOne($_FILES[‘file‘]); 15 $filename=‘/.Upload‘.$info[‘savepath‘].$info[‘savename‘]; 16 $exts=$info[‘ext‘]; 17 if(!$info) 18 { 19 //提示上传错误 20 $this->error($upload->getError); 21 22 } 23 else{ 24 //上传成功,开始导入 25 $this->dataImport($finame,$exts); 26 27 } 28 } 29 30 //这是导入函数 31 puhblic function dataImport($filename,$exts) 32 { 33 34 //导入phpExcel类库,因为PHPExcel没有用命名空间,只能inport导入 35 import("Org.Util.PHPExcel"); 36 //创建PHPExcel对象,注意,不能少了 37 $PHPExcel=new PHPExcel(); 38 //如果excel文件后缀名为.xls,导入这个类 39 if($exts == ‘xls‘){ 40 import("Org.Util.PHPExcel.Reader.Excel5"); 41 $PHPReader=new PHPExcel_Reader_Excel5(); 42 }else if($exts == ‘xlsx‘){ 43 import("Org.Util.PHPExcel.Reader.Excel2007"); 44 $PHPReader=new PHPExcel_Reader_Excel2007(); 45 46 //载入文件 47 $PHPExcel=$PHPReader->load($filename); 48 //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推 49 $currentSheet=$PHPExcel->getSheet(0); 50 //获取总列数 51 $allColumn=$currentSheet->getHighestColumn(); 52 //获取总行数 53 $allRow=$currentSheet->getHighestRow(); 54 //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始 55 56 for($currentRow=3;$currentRow<=$allRow;$currentRow++){ 57 //从哪列开始,A表示第一列 58 59 for($currentColumn=‘A‘;$currentColumn<=$allColumn;$currentColumn++){ 60 //数据坐标 61 $address=$currentColumn.$currentRow; 62 //读取到的数据,保存到数组$arr中 63 $data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue(); 64 65 } 66 } 67 $this->save_import($data); 68 69 } 70 71 //导入导数据库中 72 public function save_import($data) 73 { 74 //假设是某个数据库 75 $database=D(‘upload‘); 76 //用循环 77 foreach($data as $k=>$v) 78 { 79 //封装数据 80 $info[‘name‘]=$v[‘B‘]; 81 $info[‘age‘]=$v[‘C‘]; 82 $info[‘tel‘]=$v[‘E‘]; 83 $info[‘addr‘]=$v[‘F‘]; 84 $info[‘career‘]=$v[‘G‘]; 85 if($v[‘B‘]!=""&&$v[‘C‘]!=""&&$v[‘E‘]!=""&&$v[‘F‘]!=""&&$v[‘G‘]!="") 86 { 87 $result=$d->where(array(‘tel‘=>$v[‘E‘]))->find(); 88 89 if($result){ 90 $res=$d->where(array(‘tel‘=>$v[‘E‘]))->save($info); 91 }else{ 92 $res=$d->add($info); 93 } 94 95 96 } 97 98 99 100 }
以上是关于thinkphp的excel的导入导出的主要内容,如果未能解决你的问题,请参考以下文章