当前位置: 首页 > 工具软件 > exportExcel > 使用案例 >

exportExcel

曾喜
2023-12-01
<?php

/**
 * 导出Excel
 * @param array $heads 表头 一维数组
 * @param mixed $mixed 数据(二维关联数组)| 函数 如 foreach($list AS $item){return "<tr><td>{$item['id']}</td></tr>";}
 * @param array $fields 字段列表 如 ['id','name'];
 * @param string $excel_name 文件名
 * @return null
 */
function exportExcel($heads, $mixed, $fields = [], $excel_name = 'excel')
{
    header('Content-Type: text/xls');
    header("Content-type:application/vnd.ms-excel;charset=utf-8");
    header("Content-Disposition: attachment; filename={$excel_name}.xls");
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header("Pragma: no-cache");

    $str = chr(239) . chr(187) . chr(191) . '<table border="1">';

    //绘制表头
    if ($heads) {
        $str .= '<tr>';
        foreach ($heads AS $head) {
            $str .= '<th>' . (string)$head . '</th>';
        }
        $str .= '</tr>';
    }

    //表格数据
    if ($mixed) {

        //二维关联数组
        if (is_array($mixed)) {
            $list = $mixed;
            foreach ($list AS $item) {
                $str .= '<tr>';
                if ($fields) {
                    foreach ($fields AS $td) {
                        $str .= '<td>' . (isset($item[$td]) ? $item[$td] : '') . '</td>';
                    }
                } else {
                    foreach ($item AS $td) {
                        $str .= '<td>' . $td . '</td>';
                    }
                }
                $str .= '</tr>';
            }
        } else {
            //函数
            $str .= $mixed;
        }
    }

    $str .= '</table>';

    echo $str;
    die();
}

//Demo
$arr = [['username'=>'tom','age'=>18],['username'=>'john','age'=>19]];

exportExcel(['名字','年龄'],$arr,['username','age']);

 

相关阅读

相关文章

相关问答