下面展示一些 内联代码片
。
$yearmon=$_GET['yearmon']??date('Ym');
$resFail=DB::table('csmrecordlists')->where('alias','!=','')->where(['team_number'=>'','yearmon'=>$yearmon])->get();
if(count($resFail)==0){
die('本月无未匹配数据,请看其他月份');
}
$arrFail=[];
$cellArr=[];
$filename = '内部工号匹配失败表-'.date('YmdHis');
$headlist[0] = iconv('utf-8', 'gbk', '数据表ID号');
$headlist[1] = iconv('utf-8', 'gbk', '手机');
$headlist[2] = iconv('utf-8', 'gbk', '月份');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.csv"');
header('Cache-Control: max-age=0');
//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
//计数器
$num = 0;
//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 10000;
fputcsv($fp, $headlist);
foreach($resFail as $v){
$num++;
//刷新一下输出buffer,防止由于数据过多造成问题
if ($limit == $num) {
ob_flush();
flush();
$num = 0;
}
$row[0] = $v->id."\t";
$row[1] = iconv('utf-8', 'gbk', " ".$v->phone);
$row[2] = iconv('utf-8', 'gbk', " ".$v->yearmon);
fputcsv($fp, $row);
}