php導(dǎo)出數(shù)據(jù)到excel表

<?php

  $excel = new Excel();
  $excel->addHeader(array('列1','列2','列3','列4'));
  $excel->addBody(
            array(
                array('數(shù)據(jù)1','數(shù)據(jù)2','數(shù)據(jù)3','數(shù)據(jù)4'),
                array('數(shù)據(jù)1','數(shù)據(jù)2','數(shù)據(jù)3','數(shù)據(jù)4'),
                array('數(shù)據(jù)1','數(shù)據(jù)2','數(shù)據(jù)3','數(shù)據(jù)4'),
                array('數(shù)據(jù)1','數(shù)據(jù)2','數(shù)據(jù)3','數(shù)據(jù)4')
            )
        );
 $excel->downLoad();
 
class Excel{
    private $head;
    private $body;
     
    /**
     * 
     * @param type $arr 一維數(shù)組
     */
    public function addHeader($arr){
        foreach($arr as $headVal){
            $headVal = $this->charset($headVal);
            $this->head .= "{$headVal}\t ";
        }
        $this->head .= "\n";
    }
     
    /**
     * 
     * @param type $arr 二維數(shù)組
     */
    public function addBody($arr){
        foreach($arr as $arrBody){
            foreach($arrBody as $bodyVal){
                $bodyVal = $this->charset($bodyVal);
                // 過濾特殊字符
                $bodyVal = str_replace(array('\\n','\\t','<br>','<br />', '<br>','</br>'), "", $bodyVal);
                $bodyVal = str_replace(array("rn", "r", "n"), "", $bodyVal);
                $bodyVal =preg_replace("{\t}","",$bodyVal);
                $bodyVal=preg_replace("{\r\n}","",$bodyVal);
                $bodyVal=preg_replace("{\r}","",$bodyVal);
                $bodyVal=preg_replace("{\n}","",$bodyVal);
                $bodyVal = str_replace(",", " ",$bodyVal);
                $this->body .= "{$bodyVal}\t ";
            }
            $this->body .= "\n";
        }
    }
     
    /**
     * 下載excel文件
     */
    public function downLoad($filename=''){
        if(!$filename)
            $filename = date('YmdHis',time()).'.xls';
        header("Content-type:application/vnd.ms-excel");
       //application/vnd.ms-excel這個(gè)是下載excel表的類型
       //還有其他文件類型,在末尾介紹

        header("Content-Disposition:attachment;filename=$filename");//content-disposition 本來是為了在客戶端另存文件時(shí)提供的文件名,
       // attachment  ——作為附件下載
       // inline            ——在線打開
        header("Content-Type:charset=gb2312");
        if($this->head)
            echo $this->head;
        echo $this->body;
    }
     
    /**
     * 編碼轉(zhuǎn)換
     * @param type $string
     * @return string
     */
    public function charset($string){
        return iconv("utf-8", "gb2312", $string);
    }
}
?>

上面介紹了下載excel表的類型需要使用到application/vnd.ms-excel
這里還介紹了其他文件類型下載需要使用的類型:

$fileType = array(
    'doc'        => 'application/msword',
    'bin'        => 'application/octet-stream',
    'exe'        => 'application/octet-stream',
    'so'        => 'application/octet-stream',
    'dll'        => 'application/octet-stream',
    'pdf'        => 'application/pdf',
    'ai'        => 'application/postscript',
    'xls'        => 'application/vnd.ms-excel',
    'ppt'        => 'application/vnd.ms-powerpoint',
    'dir'        => 'application/x-director',
    'js'        => 'application/x-javascript',
    'swf'        => 'application/x-shockwave-flash',
    'xhtml'        => 'application/xhtml+xml',
    'xht'        => 'application/xhtml+xml',
    'zip'        => 'application/zip',
    'mid'        => 'audio/midi',
    'midi'        => 'audio/midi',
    'mp3'        => 'audio/mpeg',
    'rm'        => 'audio/x-pn-realaudio',
    'rpm'        => 'audio/x-pn-realaudio-plugin',
    'wav'        => 'audio/x-wav',
    'bmp'        => 'image/bmp',
    'gif'        => 'image/gif',
    'jpeg'        => 'image/jpeg',
    'jpg'        => 'image/jpeg',
    'png'        => 'image/png',
    'css'        => 'text/css',
    'html'        => 'text/html',
    'htm'        => 'text/html',
    'txt'        => 'text/plain',
    'xsl'        => 'text/xml',
    'xml'        => 'text/xml',
    'mpeg'        => 'video/mpeg',
    'mpg'        => 'video/mpeg',
    'avi'        => 'video/x-msvideo',
    'movie'        => 'video/x-sgi-movie',  
);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • http://www.jb51.net/article/29950.htm 文件后綴MIME備注 *.avivid...
    ink9979閱讀 21,041評論 0 0
  • 一、MIME TYPE 描述 多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MIME,Multipurpose Internet Mail...
    Arnold_J閱讀 2,116評論 0 1
  • 世界越糟糕 心越靠近小時(shí)候 那時(shí)候馬路上沒有這許多車 爺爺還在 我坐在大梁自行車上 和柳絮說話和風(fēng)兒談天 那時(shí)候走...
    三苓閱讀 313評論 1 5
  • 一,迷霧突至 9月的下半月天氣開始轉(zhuǎn)涼,簡語像往常一樣6點(diǎn)起床。她已經(jīng)習(xí)慣早起,她知道自己還有很多時(shí)間洗漱,化妝做...
    紅谷閱讀 255評論 0 0

友情鏈接更多精彩內(nèi)容