PHPExcel导出xls无法打开文件问题_数据

 最后在生成文件的前面加上**ob_end_clean();**即可正常打开

public function AntiExportData($list)
{
// error_reporting(0);

$objPHPExcel = new \PHPExcel();

//设置文件的一些属性,在xls文件——>属性——>详细信息里可以看到这些值,xml表格里是没有这些值的
$objPHPExcel
->getProperties() //获得文件属性对象,给下文提供设置资源
->setCreator( "MaartenBalliauw") //设置文件的创建者
->setLastModifiedBy( "MaartenBalliauw") //设置最后修改者
->setTitle( "Office2007 XLSX Test Document" ) //设置标题
->setSubject( "Office2007 XLSX Test Document" ) //设置主题
->setDescription( "Test document for Office2007 XLSX, generated using PHP classes.") //设置备注
->setKeywords( "office 2007 openxmlphp") //设置标记
->setCategory( "Test resultfile"); //设置类别
// 位置aaa *为下文代码位置提供锚
//给表格添加数据

$objPHPExcel->setActiveSheetIndex(0)//表头的信息
->setCellValue('A1', "ID")
->setCellValue('B1', "防伪码")
->setCellValue('C1', "序列号")
->setCellValue('D1', "可获得积分")
->setCellValue('E1', "状态")
->setCellValue('F1', "会员")
->setCellValue('G1', "查询时间")
->setCellValue('H1', "导入时间");
$i=2;
foreach ($list as $key => $value) {
if ($value['state'] == 1){
$state = '已查询';
}else{
$state = '未查询';
}
if ($value['state'] == 1 && $value['nickname']){
$nickname = $value['nickname'].'(已兑换)';
}else{
$nickname = '未兑换';
}
if ($value['export_time'] == null){
$export_time = '';
}else{
$export_time = date("Y-m-d H:i:s", $value['export_time']);
}
if ($value['import_time'] == null){
$import_time = '';
}else{
$import_time = date("Y-m-d H:i:s", $value['import_time']);
}
$objPHPExcel->getActiveSheet() // 设置第一个内置表(一个xls文件里可以有多个表)为活动的
->setCellValue( 'A'.$i, $value['id'] ) //给表的单元格设置数据
->setCellValue( 'B'.$i, $value['anti_counterfeiting_code'] ) //给表的单元格设置数据
->setCellValue( 'C'.$i, $value['serial_number'] )
->setCellValue( 'D'.$i, $value['integral'])
->setCellValue( 'E'.$i, $state )
->setCellValue( 'F'.$i, $nickname )
->setCellValue( 'G'.$i, $export_time) //布尔型
->setCellValue( 'H'.$i, $import_time);
$i++;
}

//公式

//得到当前活动的表,注意下文教程中会经常用到$objActSheet
$objActSheet =$objPHPExcel->getActiveSheet();
// 位置bbb *为下文代码位置提供锚
//给当前活动的表设置名称
$objActSheet->setTitle('Simple2222');
//代码还没有结束,可以复制下面的代码来决定我们将要做什么
ob_end_clean();
//1,直接生成一个文件
$objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myexchel.xlsx');
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="防伪数据.xls"');
header('Cache-Control:max-age=0');
$objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
return $this->render($this->actionID);
}

以下数据均为测试数据!

PHPExcel导出xls无法打开文件问题_phpexcel_02

 

其它参考:​​应用phpexcel导出excel文件后打不开的问题解决方法 - 走看看​