首页 > php教程 > PHP源码 > php 导出数据到excel类

php 导出数据到excel类

PHP中文网
发布: 2016-05-25 17:12:43
原创
1174 人浏览过

将数据导出到excel当中

<?php
/**
 * 导出到excel文件(一般导出中文的都会乱码,需要进行编码转换)
 * 使用方法如下
 * $excel = new Excel();
 * $excel->addHeader(array(&#39;列1&#39;,&#39;列2&#39;,&#39;列3&#39;,&#39;列4&#39;));
 * $excel->addBody(
            array(
                array(&#39;数据1&#39;,&#39;数据2&#39;,&#39;数据3&#39;,&#39;数据4&#39;),
                array(&#39;数据1&#39;,&#39;数据2&#39;,&#39;数据3&#39;,&#39;数据4&#39;),
                array(&#39;数据1&#39;,&#39;数据2&#39;,&#39;数据3&#39;,&#39;数据4&#39;),
                array(&#39;数据1&#39;,&#39;数据2&#39;,&#39;数据3&#39;,&#39;数据4&#39;)
            )
        );
 * $excel->downLoad();
 */
class Excel{
    private $head;
    private $body;
     
    /**
     * 
     * @param type $arr 一维数组
     */
    public function addHeader($arr){
        foreach($arr as $headVal){
            $headVal = $this->charset($headVal);
            $this->head .= "{$headVal}\t ";
        }
        $this->head .= "\n";
    }
     
    /**
     * 
     * @param type $arr 二维数组
     */
    public function addBody($arr){
        foreach($arr as $arrBody){
            foreach($arrBody as $bodyVal){
                $bodyVal = $this->charset($bodyVal);
                // 过滤特殊字符
                $bodyVal = str_replace(array(&#39;\\n&#39;,&#39;\\t&#39;,&#39;<br>&#39;,&#39;<br />&#39;, &#39;<br>&#39;,&#39;</br>&#39;), "", $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=&#39;&#39;){
        if(!$filename)
            $filename = date(&#39;YmdHis&#39;,time()).&#39;.xls&#39;;
        header("Content-type:application/vnd.ms-excel");
        header("Content-Disposition:attachment;filename=$filename"); 
        header("Content-Type:charset=gb2312");
        if($this->head)
            echo $this->head;
        echo $this->body;
    }
     
    /**
     * 编码转换
     * @param type $string
     * @return string
     */
    public function charset($string){
        return iconv("utf-8", "gb2312", $string);
    }
}
?>
登录后复制


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板