/**
* 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");
*/
クラス 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;
}
}