php 導出excel類

cdop 9年前發布 | 2K 次閱讀 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;

    }

}

</pre>

 本文由用戶 cdop 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!