PHP实现导出excel数据的类库用法示例
本文实例讲述了PHP实现导出excel数据的类库用法。分享给大家供大家参考,具体如下:
今天一个项目要做一个PHP导出数据用excel保存,在网上找到一个本来是想用phpexcel的,后来发现太难了,就换了一个但导出的歌声是XML
类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。
如果你有兴趣,你可以拿去扩充了,基本够用。
classExcel_XML { //定于私有变量,顶部标签 private$header="<?xmlversion=\"1.0\"encoding=\"%s\"?\>\n<Workbookxmlns=\"urn:schemas-microsoft-com: office:spreadsheet\"xmlns:x=\"urn:schemas-microsoft-com:office:excel\"xmlns:ss=\"urn:schemas-microsoft-com: office:spreadsheet\"xmlns:html=\"http://www.w3.org/TR/REC-html40\">"; //底部标签 private$footer="</Workbook>"; //定于行数组 private$lines=array(); //设置编码 private$sEncoding; //设置类型 private$bConvertTypes; //设置sheet名称 private$sWorksheetTitle; //构造函数 publicfunction__construct( $sEncoding='UTF-8',$bConvertTypes=false,$sWorksheetTitle='Table1') { $this->bConvertTypes=$bConvertTypes; $this->setEncoding($sEncoding); $this->setWorksheetTitle($sWorksheetTitle); } //设置编码,在构造函数里面默认的事UTF-8格式 publicfunctionsetEncoding($sEncoding) { $this->sEncoding=$sEncoding; } //设置excel的头 publicfunctionsetWorksheetTitle($title) { $title=preg_replace("/[\\\|:|\/|\?|\*|\[|\]]/","",$title); $title=substr($title,0,31); $this->sWorksheetTitle=$title; } //增加行函数(关键函数) privatefunctionaddRow($array) { $cells="";//设置每个单元为空 foreach($arrayas$k=>$v) { $type='String';//默认类型是字符串 if($this->bConvertTypes===true&&is_numeric($v))://判断类型 {$type='Number';} $v=htmlentities($v,ENT_COMPAT,$this->sEncoding); $cells.="<Cell><Datass:Type=\"$type\">".$v."</Data></Cell>\n"; } $this->lines[]="<Row>\n".$cells."</Row>\n";//写入数组 } //增加数组 publicfunctionaddArray($array) { foreach($arrayas$k=>$v) {$this->addRow($v);} } //导出xml publicfunctiongenerateXML($filename='excel-export') { $filename=preg_replace('/[^aA-zZ0-9\_\-]/','',$filename); header("Content-Type:application/vnd.ms-excel;charset=".$this->sEncoding); header("Content-Disposition:inline;filename=\"".$filename.".xls\""); echostripslashes(sprintf($this->header,$this->sEncoding)); echo"\n<Worksheetss:Name=\"".$this->sWorksheetTitle."\">\n<Table>\n"; foreach($this->linesas$line) echo$line; echo"</Table>\n</Worksheet>\n"; echo$this->footer; } }
原理很简单,就是把数据数组,读出来,再用XML的标签封上,在用php自带的header()函数告诉游览器,就可以了。
调用:
publicfunctionimport() { $data=array( 1=>array('学校名称',"队伍名称") ); foreach($this->teamas$key=>$value) { array_push($data,array($key,$value)); } $xls=newExcel_XML('UTF-8',false,'MyTestSheet');//实例化函数 $xls->addArray($data); $xls->generateXML('school');//导出并设置名称 }
上面是的写一个导出方式。在游览器运行就已经导出数组$this->team里面的键和值了。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。