2013-10-11 4 views
0

3 열 목록이 포함 된 간단한 Excel 문서를 만들려고합니다. (이름, 성, 이메일 주소)Kohana 3.2 + PHPExcel은 31 개 이상의 행이 작성되면 빈 문서를 만듭니다.

언제 출력 31 개 이상의 행을하는 파일이 만들어 엑셀. 누구든지 그것을 고칠 방법을 알고 있습니까? 아래

내 코드 :

$guests = ORM::factory('guest') 
     ->order_by('last_name', 'ASC') 
     ->find_all() 
    ->as_array(); 

$columns = array('first_name', 'last_name', 'email'); 


$objPHPExcel = new PHPExcel(); 

$objPHPExcel->getProperties() 
     ->setCreator('Me') 
     ->setLastModifiedBy('Me) 
     ->setTitle('Guest List') 
     ->setSubject('Guest List') 
     ->setDescription('Title of Report, run on ' . date('m/d/Y H:i:s')); 
$objPHPExcel->createSheet(0); 
$objPHPExcel->setActiveSheetIndex(0); 

    foreach($guests as $row => $guest) { 
     $source = array(); 
     $column = 0; 
     $next_row = $objPHPExcel->getActiveSheet()->getHighestRow(); 

     foreach($guest->as_array() as $column_name => $data) { 
      if(in_array($column_name, $columns)) { 

       $objPHPExcel->getActiveSheet() 
       ->setCellValueByColumnAndRow($column, $next_row+1, $data); 

       $column++; 
       // unset($data); 
      } 
     } 

    } 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
    $this->response->body($objWriter->save('php://output')); 
    $this->response->send_file(TRUE, 'GuestList.xls'); 
+0

로그에서 오류 메시지를 확인합니다. 또는 생성 된 파일을 텍스트 편집기에서 열어 오류 메시지가 있는지 확인하십시오. –

+0

로그 파일에 오류가 생성되지 않았으며 생성 된 파일이 0 바이트 였으므로 오류가 없습니다. 다행히도 문제의 해결 방법을 발견했습니다. –

+0

답변은 디스크에 파일을 쓰는 것입니다. _ ** THEN ** _ send_file() 메소드를 사용하여 다운로드 할 파일을 설정하십시오. –

답변

0

Kohana는 send_file() 메소드를 사용하여 렌더링 된 파일을 처리하는 힘든 시간을 가지고, 그래서 PHPExcel에서 내장 된 방법을 사용하여 파일을 디스크에 쓰기. 그런 다음 Kohana를 사용하여 저장된 파일을 다운로드로 제공하십시오.

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
$objWriter->save($filename, 'EXCEL2007'); 
$this->response->send_file(DOCROOT.$filename);