php直接生成.csv後綴文件的excel表格實例

先了解如何生成後綴爲 .csv文件的方法 傳送門

   # 數組,調用下面方法然後直接下載
    public function index(){
        $array = [
            ['name' => '張三','age' => 17],
            ['name' => '李四','age' => 18],
            ['name' => '王五','age' => 19],
            ['name' => '麻二','age' => 20],
        ];

        return $this->export_csv($array);

    }

/***
     * 導出下載excel
     * @param [array] $array [要轉換excel數組]
     */
    public function export_csv($array){
        $temp = '';
        foreach ($array as $value)
        {
            foreach ($value as $k => $val)
            {
                $value[$k] = iconv('utf-8','gb2312',$value[$k]);
            }

            $temp .= implode(",",$value)."\n"; //用英文“逗號”分開,獲取值
        }

        # 獲取name,age做標題【這裏我沒有想到更好的方法,做個flag以便以後更加完善】
        ## 就是要取出 ‘name’,'age' 這兩個key
        $keyname = array_keys($array[0])[0] . ',' . array_keys($array[0])[1] ."\n";
        $string  = $keyname. $temp;//拼接

        $filename = date('Ymd').'.csv'; //設置文件名
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo $string;
    }

最終導出的excel如下:

這裏寫圖片描述

以上是沒有使用類庫的生成簡單excel方法!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章