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

解决方法转自 http://blog.sina.com.cn/s/blog_6a1fb8420102x0ze.html
在这里插入图片描述
最后在生成文件的前面加上**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);
    }

以下数据均为测试数据!
以上所有数据均为测试数据!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值