php 导出Excel 文件名没有获取到

问题遇到的现象和发生背景

我导出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 头 文件名也对啊

img

运行结果及报错内容

导出成了这种

img


打开是

img


我把文件后缀改成xls 打开

img


这里面数据是没有问题的
求指教 主要这个文件名是怎么事!

加个这个ob_end_clean();

img