我导出excel表 出现的都是txt文件
我的代码
function exportExcel($list,$filename,$indexKey,$startRow=1,$excel2007=true){
if (empty($filename)){
$filename = date("Y-m-d H:i:s");
}
if( !is_array($indexKey)) return false;
$header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
// 清空(擦除)缓冲区并关闭输出缓冲
ob_end_clean();
//初始化PHPExcel()
$objPHPExcel = new \PHPExcel();
//设置保存版本格式
if($excel2007){
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$filename = $filename.'.xlsx';
}else{
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$filename = $filename.'.xls';
}
// 写数据到表格里面去
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($list as $row) {
foreach ($indexKey as $key => $value){
//这里是设置单元格的内容
$objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);
}
$startRow++;
}
// 列名表头文字加粗
$objPHPExcel->getActiveSheet()->getStyle('A1:J1')->getFont()->setBold(true);
// 列表头文字居中
$objPHPExcel->getActiveSheet()->getStyle('A1:J1')->getAlignment();
// print_r($objActSheet);
// $getMulPath = $this->getMulPath();//生成当前年月日
// $user_path_=$this->config["upload_path"].'/'.$getMulPath.'/';
$filename_ = iconv('utf-8', 'gbk', $filename);
// 下载这个表格,在浏览器输出
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('pragma:public');
header('Content-Disposition: attachment; filename='.$filename_);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
这是我的接口返回的header 头 文件名也对啊
导出成了这种
加个这个ob_end_clean();