PHPExcel:Excel无法打开文件

PHPExcel:Excel无法打开文件,php,phpexcel,Php,Phpexcel,我正在根据以下代码生成excel工作表: $k = 3;//Three rows made outside loop while($i<n){ if(<condition>){ //the code here works fine }else{ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($i+$k), det

我正在根据以下代码生成excel工作表:

$k = 3;//Three rows made outside loop
while($i<n){
    if(<condition>){
        //the code here works fine
    }else{
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A'.($i+$k), detailedTaskActivitiesMap($i))
                    ->setCellValue('B'.($i+$k), " ")
                    ->setCellValue('C'.($i+$k), " ")
                    ->setCellValue('D'.($i+$k), " ")
                    ->setCellValue('E'.($i+$k), " ")
                    ->setCellValue('F'.($i+$k), " ")
                    ->setCellValue('G'.($i+$k), " ")
                    ->setCellValue('H'.($i+$k), " ")
                    ->setCellValue('I'.($i+$k), " ")
                    ->setCellValue('J'.($i+$k), " ")
                    ->setCellValue('K'.($i+$k), " ")
                    ->setCellValue('L'.($i+$k), " ")
                    ->setCellValue('M'.($i+$k), " ")
                    ->setCellValue('N'.($i+$k), " ")
                    ->setCellValue('O'.($i+$k), " ")
                    ->setCellValue('P'.($i+$k), " ")
                    ->setCellValue('Q'.($i+$k), " ")
                    ->setCellValue('R'.($i+$k), " ")
                    ->setCellValue('S'.($i+$k), " ");
        $sharedStyleA1 = new PHPExcel_Style();
        $sharedStyleA1->applyFromArray(array('fill' => array(
                                    'type'  => PHPExcel_Style_Fill::FILL_SOLID,
                                    'color' => array('argb' => 'FFf2f2f2')
                                   ),
                      'borders' => array('bottom'=> array('style' => PHPExcel_Style_Border::BORDER_THIN,'color' => array('argb' => 'FFbfbfbf'))
                                   )
                      ));
        $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyleA1, "A".($i+$k));

        $sharedStyleRest1 = new PHPExcel_Style();
        $sharedStyleRest1->applyFromArray(array('fill' => array(
                                    'type'  => PHPExcel_Style_Fill::FILL_SOLID,
                                    'color' => array('argb' => 'FFffffff')
                                   ),
                      'borders' => array(
                                    'left'=> array('style' => PHPExcel_Style_Border::BORDER_THIN,'color' => array('argb' => 'FFbfbfbf')),
                                    'bottom'=> array('style' => PHPExcel_Style_Border::BORDER_THIN,'color' => array('argb' => 'FFbfbfbf')),
                                    'right'=> array('style' => PHPExcel_Style_Border::BORDER_THICK,'color' => array('argb' => 'FF000000'))
                                   )
                      ));
        $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyleRest1, "S".($i+$k));
        $objPHPExcel->getActiveSheet()->getStyle('A'.($i+$k))->getFont()->setSize(10);
        $objPHPExcel->getActiveSheet()->getStyle('B'.($i+$k))->getFont()->setSize(8);
        $objPHPExcel->getActiveSheet()->getStyle('A'.($i+$k))->getFont()->getColor()->applyFromArray( array('argb' => 'FF000000','name'=>'Calibri') );
        $objPHPExcel->getActiveSheet()->getStyle('C'.($i+$k))->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('C'.($i+$k))->getFont()->getColor()->applyFromArray( array('argb' => 'FFc00000','name'=>'Calibri') );
        $objPHPExcel->getActiveSheet()->getStyle('A'.($i+$k))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
        $objPHPExcel->getActiveSheet()->getStyle('A'.($i+$k))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);


    }
    $i++;
}

//Code to generate other rows.

$objPHPExcel->getActiveSheet()->getStyle('A1:S100')
        ->getAlignment()->setWrapText(true); 

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');

exit();
$k=3//三排在外环
而($ISetractiveSheetIndex(0)
->setCellValue('A'($i+$k),详细的TaskaActivitiesMap($i))
->setCellValue('B'($i+$k),“”)
->setCellValue('C'($i+$k),“”)
->setCellValue('D')($i+$k),“”)
->setCellValue('E'($i+$k),“”)
->setCellValue('F'($i+$k),“”)
->setCellValue('G')($i+$k),“”)
->setCellValue('H')($i+$k),“”)
->setCellValue('I'($I+$k),“”)
->setCellValue('J'($i+$k),“”)
->setCellValue('K')($i+$K),“”)
->setCellValue('L'($i+$k),“”)
->setCellValue('M'($i+$k),“”)
->setCellValue('N'($i+$k),“”)
->setCellValue('O')($i+$k),“”)
->setCellValue('P'($i+$k),“”)
->setCellValue('Q'($i+$k),“”)
->setCellValue('R'($i+$k),“”)
->setCellValue('S')($i+$k),“”);
$sharedStyleA1=新的PHPExcel_样式();
$sharedStyleA1->ApplyFlomarray(数组('fill'=>数组(
'type'=>PHPExcel\u Style\u Fill::Fill\u SOLID,
'color'=>数组('argb'=>'fff2f2')
),
'borders'=>array('bottom'=>array('style'=>PHPExcel\u style\u Border::Border\u THIN,'color'=>array('argb'=>ffbff'))
)
));
$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyleA1,“A”。$i+$k));
$sharedStyleRest1=新的PHPExcel_样式();
$sharedStyleRest1->applyFromArray(数组('fill'=>数组(
'type'=>PHPExcel\u Style\u Fill::Fill\u SOLID,
'color'=>array('argb'=>'FFffffff')
),
“边框”=>数组(
'left'=>array('style'=>PHPExcel\u style\u Border::Border\u THIN,'color'=>array('argb'=>ffbff')),
'bottom'=>array('style'=>PHPExcel\u style\u Border::Border\u THIN,'color'=>array('argb'=>ffbff')),
'right'=>array('style'=>PHPExcel\u style\u Border::Border\u THICK,'color'=>array('argb'=>'FF000000'))
)
));
$objPHPExcel->getActiveSheet()->setSharedStyle($SharedStyles1,“S.”($i+$k));
$objPHPExcel->getActiveSheet()->getStyle($i+$k))->getFont()->setSize(10);
$objPHPExcel->getActiveSheet()->getStyle($i+$k))->getFont()->setSize(8);
$objPHPExcel->getActiveSheet()->getStyle('A'($i+$k))->getFont()->getColor()->applyFromArray(数组('argb'=>'FF000000','name'=>'Calibri');
$objPHPExcel->getActiveSheet()->getStyle($i+$k))->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('C'($i+$k))->getFont()->getColor()->applyFromArray(数组('argb'=>'FFc00000','name'=>'Calibri');
$objPHPExcel->getActiveSheet()->getStyle('A'($i+$k))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle('A'($i+$k))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
}
$i++;
}
//生成其他行的代码。
$objPHPExcel->getActiveSheet()->getStyle('A1:S100')
->getAlignment()->setWrapText(true);
标题('Content-Type:application/vnd.openxmlformats officedocument.spreadsheetml.sheet');
标题('Content-Disposition:attachment;filename=“”.$filename..xlsx“);
标头('Cache-Control:max age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');
退出();
如果某行的if条件失败,则excel工作表无法在Microsoft excel中打开


我已经测试了$I、$k的值以及其他函数和变量返回的值。它们是正确的。

您需要使用
objPHPExcel
并使用其中一个PHPExcel接口创建一个文件,您正在这样做吗?尝试一些基本调试如果条件失败,删除一半的内容,然后重试,如果条件失败,请重试rks那么你知道是哪一半造成了问题,如果不是,那么就用另一半的东西试一下,然后删除和添加位,直到你确切地找出问题的原因。@DevZer0-我已经更新了创建文件的代码。@Anigel-我已经尝试了所有可能的组合,从else块中没有代码到只有我自己在单元格中插入值且不设置样式到不设置值且仅设置样式。是否使用条件传递中已知的良好代码进行了尝试?