PHP导出数据库数据至Excel

来源:互联网 发布:淘宝拍照布光影棚 编辑:程序博客网 时间:2024/05/29 11:44
<?php/** * 导出到excel文件(一般导出中文的都会乱码,需要进行编码转换) * 使用方法如下 * $excel = new Excel(); * $excel->addHeader(array('列1','列2','列3','列4')); * $excel->addBody(            array(                array('数据1','数据2','数据3','数据4'),                array('数据1','数据2','数据3','数据4'),                array('数据1','数据2','数据3','数据4'),                array('数据1','数据2','数据3','数据4')            )        ); * $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);                $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");        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//IGNORE", $string);    }  /**     * 特殊符号转换     * @param type $string     * @return string     */public function htmlcode($value){//替换空格和换行$value = str_replace("\n", "<br>", str_replace("\r\n", "<br>",str_replace(" ", " ", $value)));$value = mysql_real_escape_string($value);// 去除斜杠if (get_magic_quotes_gpc()){  $value = stripslashes($value);}return $value;}}$excel = new Excel();$excel->addHeader(array('学号','姓名','性别','学院','专业名称','年级','问题1','问题2','问题3','问题4','问题5','问题6','问题7','问题8','问题9','问题10','是否已做问卷(1-已做,0-未做)'));$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");mysql_select_db("survey", $conn);mysql_query("set names 'utf8'");$sql = "SELECT * FROM info WHERE 1";$re = mysql_query($sql); while($row = mysql_fetch_array($re)) { $excel->addBody(array(array($row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],$row[9],$row[10],$row[11],$row[12],$row[13],$row[14],$row[15],$row[16],$row[17])));}$excel->downLoad();?>

0 0
原创粉丝点击