php直接生成.csv字尾檔案的excel表格例項
阿新 • • 發佈:2019-01-23
先了解如何生成字尾為 .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方法!