Warning: Error while sending QUERY packet. PID=27500 in /home/wwwroot/coco/domain/cnlamp/web/wp-includes/wp-db.php on line 1924 php 导出excel类 | LAMP新闻|技巧|经验|资讯站
现在的位置: 首页PHP>正文
php 导出excel类
发表于6年前 PHP 暂无评论
/**
* excel导出类
*
* 使用方法
$excel=new Excel();
* //设置编码:
*$excel->setEncode("utf-8","gb2312"); //如果不转码,参数写一样即可,例如$excel->setEncode("utf-8","utf-8");
* //设置标题栏
* $titlearr=array("a","b","c","d");
* //设置内容栏
* $contentarr=array(
* 1=>array("ab","ac","ad","ae"),
* 2=>array("abc","acc","adc","aec"),
* 3=>array("abd","acd","add","aed"),
* 4=>array("abe","ace","ade","aee"),
* );
* $excel->getExcel($titlearr,$contentarr,"abc");
*/
class Excel {
	var $inEncode; //一般是页面编码
 
	var $outEncode; //一般是Excel文件的编码
 
	public function __construct(){
 
	}
	/**
	*设置编码
	*/
	public function setEncode($incode,$outcode){
		$this->inEncode=$incode;
 
		$this->outEncode=$outcode;
	}
	/**
	*设置Excel的标题栏
	*/
	public function setTitle($titlearr){
		$title="";
		foreach($titlearr as $v){
			if($this->inEncode!=$this->outEncode){
				$title.=iconv($this->inEncode,$this->outEncode,$v)."\t";
			}
			else{
				$title.=$v."\t";
			}
		}
		$title.="\n";
		return $title;
	}
	/**
	*设置Excel内容
	*/
	public function setRow($array){
		$content="";
		foreach($array as $k => $v){
			foreach($v as $vs){
				if($this->inEncode!=$this->outEncode){
					$content.=iconv($this->inEncode,$this->outEncode,$vs)."\t";
				}
				else{
					$content.=$vs."\t";
				}
			}
			$content.="\n";
		}
		return $content;
	}
	/**
	*生成并自动下载Excel
	* $titlearr 标题栏数组
	* $array 内容数组
	* $filename 文件名称 (为空,已当前日期为名称)
	*/
	public function getExcel($titlearr,$array,$filename=''){
		if($filename==''){
			$filename=date("Y-m-d");
		}
		$title=$this->setTitle($titlearr);
		$content=$this->setRow($array);
		header("Content-type:application/vnd.ms-excel");
		header("Content-Disposition:filename=".$filename.".xls");
		echo $title;
		echo $content;
	}
}

给我留言

留言无头像?


×
腾讯微博