2013-07-17 2 views
1

데이터베이스에서 오는 xls 파일을 생성하기 위해 PHPExcel을 사용하고 있습니다. 아래 줄로 내 PHP 클래스의 PHPExcel의 라이브러리를 사용하여 다운로드 한 :PHPExcel이 올바른 xls 파일을 생성하지 않습니다

Class name : A.class.php 
Path : inside a folder named "inc"; 
PHPExcel Lib folder : inside "inc" and relative to A.class.php 


class A{ 

     // code stuff 

     public function phpexcelgenerate() 
     { 
     require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel.php'; 
     header('Content-Type: application/vnd.ms-excel'); 
     header('Content-Disposition: attachment;filename="sam.xlsx"'); 
     header('Cache-Control: max-age=0');    
     $objPHPExcel = new PHPExcel; 
     $objPHPExcel->setActiveSheetIndex(0); 
     $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12"); 

     $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
     // This line will force the file to download  
     $writer->save(); 
     } 
     // code stuff 
     } 

이 코드는 XLS 파일을 생성되지만 해당 파일은 완전히 비어 있습니다. PHP 클래스에서 PHPExcel의 파일을 잘못된 방법으로 포함 시켰다고 생각합니다. 아무도 내가 잘못하고있는 곳을 말해 줄 수 있습니까? 아니면 어떻게 똑같이 할 수 있습니까?

답변

2

save() 방법으로 파일 이름을 전달해야합니다. 그런 다음 해당 파일의 내용을 읽고 브라우저에 표시합니다.

$writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$writer->save("excel.xls"); 
readfile("excel.xls"); 
2

당신이 파일을 읽을 필요가 첫째 :

$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $i); 
    $objPHPExcel->getActiveSheet()->setCellValue('B'.$row, $rec->eType); 
:

//get data 
    $details = $this->main_model->get_details()->row(); 

후 세포를 해결하기 위해 데이터를 할당 : DB에서 데이터를 얻을 지금

// Read the file 
    $objReader = PHPExcel_IOFactory::createReader(Excel5); 
    $objPHPExcel = $objReader->load($fileName); 

끝에 새 파일 쓰기 :

header('Content-Type: application/vnd.ms-excel'); //mime type 
    header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name 
    header('Cache-Control: max-age=0'); //no cache 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
    //force user to download the Excel file without writing it to server's HD 
    $objWriter->save('php://output'); 
+0

+1 유익한 답변! – goseo

관련 문제