PHP XlsxWriter 扩展 生成 Excel 文件完成Excel导出

通过Excel XlsxWriter 扩展生成Excel 文件,通过下面这个方法完成发送到浏览器:
public static function download($filename, $showname = '', $content = '', $expire = 180)
{
    if (is_file($filename)) {
        $length = filesize($filename);
    } elseif (is_file(UPLOAD_PATH . $filename)) {
        $filename = UPLOAD_PATH . $filename;
        $length = filesize($filename);
    } elseif ($content != '') {
        $length = strlen($content);
    } else {
        E($filename . L('下载文件不存在!'));
    }
    if (empty($showname)) {
        $showname = $filename;
    }
    $showname = preg_replace('/^.+[\\\\\\/]/', '', $showname);
    if (!empty($filename)) {
        $finfo = new \finfo(FILEINFO_MIME);
        $type = $finfo->file($filename);
    } else {
        $type = "application/octet-stream";
    }
    //发送Http Header信息 开始下载
    header("Pragma: public");
    header("Cache-control: max-age=" . $expire);
    //header('Cache-Control: no-store, no-cache, must-revalidate');
    header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expire) . "GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . "GMT");
    header("Content-Disposition: attachment; filename=" . $showname);
    header("Content-Length: " . $length);
    header("Content-type: " . $type);
    header('Content-Encoding: none');
    header("Content-Transfer-Encoding: binary");
    if ($content == '') {
        readfile($filename);
    } else {
        echo($content);
    }
    exit();
}

猜你喜欢

转载自blog.csdn.net/m0_37082962/article/details/82217737