2015-09-30 119 views
1

我在我的項目中使用PHPExcel 1.8.0。當我想用我的數據庫中的一些數據生成並下載一個.xls文件時,該文件將與垃圾數據一起下載。這裏是我的代碼:Phpexcel xls文件下載時顯示垃圾數據

$result = mysql_query("select * from my_table"); 
ob_start(); 

    //excel code 
    $this->load->library('excel'); 

//activate worksheet number 1 
     $this->excel->setActiveSheetIndex(0); 
//name the worksheet 
    $this->excel->getActiveSheet()->setTitle('test worksheet'); 

    $rowNumber = 5; 
    while ($row = mysql_fetch_assoc($result)) { 
     $col = 'B'; 
     foreach ($fields as $cell) { 
      $this->excel->getActiveSheet()->setCellValue($col .$rowNumber, $row[$cell]); 
      $col++; 
     } 

     $rowNumber++; 
    } 
     // ob_end_clean(); 
    // ob_clean() ;  

    $filename='report.xls'; //save our workbook as this file name 
    header('Content-Type: application/vnd.ms-excel'); //mime type 

    header('Content-Disposition: attachment;filename="'.$filename.'"'); 
    header('Cache-Control: max-age=0'); //no cache 

    $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5'); 
$objWriter->save('php://output'); 
    exit(); 

我都用了ob_end_clean()和ob_clean()但沒有任何工程。

+0

發送所有的標題(如'01simple下載-xls.php'所示),凡在你的代碼之前或之後確保絕對沒有被輸出有別的保存 –

+1

在文本編輯器中打開文件,查找任何前導/尾隨空白,任何BOM標記(確保您的腳本沒有BOM標頭保存)或任何明文錯誤消息 –

回答

1

試試這個代碼:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
ob_end_clean(); 
$objWriter->save('php://output');