public function excel()
{
// 標(biāo)題
$head=array('用戶編號(hào)','上班日期','簽到時(shí)間','簽退時(shí)間');
// 內(nèi)容
$csvArr[]=array('用戶編號(hào)1','上班日期1','簽到時(shí)間1','簽退時(shí)間1');
$csvArr[]=array('用戶編號(hào)2','上班日期2','簽到時(shí)間2','簽退時(shí)間2');
// 下載
$this->DownLoadCsvBySQL($csvArr,$title,date("YmdHis").'.csv');
}
/**
* PHP通過(guò)sql生成CSV文件并下載
* @param string $sql 查詢sql,結(jié)果為二維數(shù)組
* @param array $title 數(shù)據(jù),CSV文件標(biāo)題
* @param string $filename 文件名
*/
function DownLoadCsvBySQL($data,$title,$filename='DownLoad.csv')
{
ob_start();
$file = fopen("php://output", 'w');
fwrite($file,chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($file, $title);
foreach($data as $k=>$v) fputcsv($file, $v);
Header("Content-type: application/octet-stream"); #通過(guò)這句代碼客戶端瀏覽器就能知道服務(wù)端返回的文件形式
Header("Accept-Ranges: bytes"); #告訴客戶端瀏覽器返回的文件大小是按照字節(jié)進(jìn)行計(jì)算的
Header("Content-Disposition: attachment; filename=".$filename); #告訴瀏覽器返回的文件的名稱
echo fread($file,999999);
fclose($file);
}
下載文件