2017-04-21 1 views
1

phpexcelBundle을 사용하여 내보내기 데이터베이스에 Excel을 사용하지만 databsae의 특성을 null로 사용할 때 문제가 발생합니다. 내보내기 파일의 Excel에 문제가 있습니다. 문제는 null이지만 사용하면됩니다.phpexcelBundle에 set cellule가있는 경우 테스트하기 전에

[:error] [pid 2684] [client ::1:33360] PHP Parse error: syntax error, unexpected '$phpExcelObject' (T_VARIABLE), expecting function (T_FUNCTION) in /var/www/html/Projetsf/src/FrontBundle/Controller/StepsController.php on line 10000, referer:

이 인 코드 컨트롤러 : 설정 미소 세포 전에 수출의 문제가있는 경우도 이 문제입니다! 시험에

public function exportXLSAction($id){ 

     $phpExcelObject = new PHPExcel(); 
      $phpExcelObject->getProperties()->setCreator("liuggio") 
      ->setLastModifiedBy("Giulio De Donato") 
      ->setTitle("Office 2005 XLSX Test Document") 
      ->setSubject("Office 2005 XLSX Test Document") 
      ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.") 
      ->setKeywords("office 2005 openxml php") 
      ->setCategory("Test result file"); 
    $em = $this->container->get('doctrine')->getManager($this->container->get('account_manager')->getCurrentAccount()->getEmname()); 
    $Employee= $em->getRepository('FrontBundle:Employee')->findOneBy(array('id' =>$id)); 


    if ($Employee->getNom() != null) { $x = $Employee->getNom(); } else { $x = ' '; } 
     $phpExcelObject->setActiveSheetIndex(0) 
       ->setCellValue('A1', 'Civilité') 
       ->setCellValue('A2', $Employee->getCivilite()) 
       ->setCellValue('B1','Nom') 
       ->setCellValue('B2', $x) 
       ->setCellValue('C1', 'Prénom') 
       ->setCellValue('C2', $Employee->getPrenom()) 
       ->setCellValue('D1', 'Email Personnel') 
       ->setCellValue('D2', $Employee->getEmail()) 
       ->setCellValue('E1', 'Adresse Personnel') 
       ->setCellValue('E2', $Employee->getAdresse()) ; 


       foreach(range('A','Z') as $columnID){ 
    } 
    } 
    $phpExcelObject->setActiveSheetIndex(0)->getColumnDimension($columnID)->setAutoSize(true); 
} 
foreach(range('A','Z') as $columnID){ 
    $phpExcelObject->setActiveSheetIndex(0)->getColumnDimension('A'.$columnID)->setAutoSize(true); 
} 


$objWriter = new PHPExcel_Writer_Excel2007($phpExcelObject); 
$nomfichier = $Employee->getPrenom().'.xlsx'; 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="'.$nomfichier.'"'); 
header('Cache-Control: max-age=0'); 

$objWriter->save('php://output'); 


    // var_dump($response); 
     return new response('yes'); 
      } 

문제 $ '고용> getnom 경우() = null이 .. .하지만이 테스트를 만들었습니다.

이 문제를 해결하는 데 도움을 주셔서 감사합니다.

답변

0

이 문장 블록에 오타가있을 가능성이 있습니까?

foreach(range('A','Z') as $columnID){ 
    $phpExcelObject->setActiveSheetIndex(0)->getColumnDimension($columnID)->setAutoSize(true); 
    } 

    foreach(range('A','Z') as $columnID){ 
$phpExcelObject->setActiveSheetIndex(0)->getColumnDimension('A'.$columnID)->setAutoSize(true); 
    } 

편집 :

이 코드보십시오 :

public function exportXLSAction($id){ 

     $phpExcelObject = new \PHPExcel(); 
     $phpExcelObject->getProperties()->setCreator("liuggio") 
      ->setLastModifiedBy("Giulio De Donato") 
      ->setTitle("Office 2005 XLSX Test Document") 
      ->setSubject("Office 2005 XLSX Test Document") 
      ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.") 
      ->setKeywords("office 2005 openxml php") 
      ->setCategory("Test result file"); 
     $em = $this->container->get('doctrine')->getManager($this->container->get('account_manager')->getCurrentAccount()->getEmname()); 
     $Employee= $em->getRepository('FrontBundle:Employee')->findOneBy(array('id' =>$id)); 


     if ($Employee->getNom() != null) { $x = $Employee->getNom(); } else { $x = ' '; } 
     $phpExcelObject->setActiveSheetIndex(0) 
      ->setCellValue('A1', 'Civilité') 
      ->setCellValue('A2', $Employee->getCivilite()) 
      ->setCellValue('B1','Nom') 
      ->setCellValue('B2', $x) 
      ->setCellValue('C1', 'Prénom') 
      ->setCellValue('C2', $Employee->getPrenom()) 
      ->setCellValue('D1', 'Email Personnel') 
      ->setCellValue('D2', $Employee->getEmail()) 
      ->setCellValue('E1', 'Adresse Personnel') 
      ->setCellValue('E2', $Employee->getAdresse()) ; 


foreach(range('A','Z') as $columnID){ 
    $phpExcelObject->setActiveSheetIndex(0)->getColumnDimension('A'.$columnID)->setAutoSize(true); 
} 


$objWriter = new \PHPExcel_Writer_Excel2007($phpExcelObject); 
$nomfichier = $Employee->getPrenom().'.xlsx'; 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="'.$nomfichier.'"'); 
header('Cache-Control: max-age=0'); 

$objWriter->save('php://output'); 


// var_dump($response); 
return new response('yes'); 
} 

희망이 도움도

+0

문제 :(

 foreach(range('A','Z') as $columnID){ } // WHY? } // WHY? $phpExcelObject->setActiveSheetIndex(0)->getColumnDimension($columnID)->setAutoSize(true); } 

예를 들어, 같은으로 그들을 제거하십시오 –

+0

안녕하세요 @d ev_2017 내 업데이트를 확인하십시오 – Matteo

+0

업데이트를 확인하지만 문제가 있습니다. –

관련 문제