PHP下载excel表格

来源:互联网 发布:php获取js的变量 编辑:程序博客网 时间:2024/04/24 14:04
public static function downXls($data, $keynames, $headers, $name = 'dataxls', $convert = false, $xmlv = false)    {        $xls[] = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\"><meta http-equiv=content-type content=\"text/html; charset=UTF-8\"><body><table border='1'>";        if ($headers) {            $xls[] = $headers;        }        $xls[] = "<tr><td>ID</td><td>" . implode("</td><td>", array_values($keynames)) . '</td></tr>';        $index = 0;        foreach ($data As $o) {            $line = [++$index];            foreach ($keynames AS $k => $v) {                $line[] = $o[$k];            }            $xls[] = '<tr><td>' . implode("</td><td x:str>", $line) . '</td></tr>';        }        $xls[] = '</table></body></html>';        $xls   = join("\r\n", $xls);        if ($xmlv) {            $filename = $name . '.xlsx';        }//excel2007+版本        else {            $filename = $name . '.xls';        }//excel2003版本        if ($convert) {            //修正文件名在某些浏览器当中乱码的问题            $ua               = $_SERVER["HTTP_USER_AGENT"];            $encoded_filename = urlencode($filename);            $encoded_filename = str_replace("+", "%20", $encoded_filename);            if (preg_match("/MSIE/", $ua)) {                header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');            } else {                if (preg_match("/Firefox/", $ua)) {                    header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');                } else {                    header('Content-Disposition: attachment; filename="' . $filename . '"');                }            }        } else {            header('Content-Disposition: attachment; filename="' . $filename . '"');        }        die(mb_convert_encoding($xls, 'UTF-8', 'UTF-8'));    }

$list=[            ['id'=>2,                'name'=>'汪杨',                'address'=>'湖南'            ],            ['id'=>2,                'name'=>'汪杨',                'address'=>'18612345678'            ]        ];        $header=[            'id'=>'ID',            'name'=>'姓名',            'address'=>'地址'        ];        Excel::downXls($list,$header,'aa','aa11');

这里写图片描述

原创粉丝点击