2014-07-01 65 views
0

我不想將html表格提取到.xsl文件。我已經在symfony2中安裝了PHPExcel,但是當我只是想通過將隨機頁面提取到.xls文件來測試它時,第一部分的文件充滿了亂碼,我真的不知道爲什麼:http://images4.hiboox.com/images/2714/f657dfd1d406e941cfbe3ff9dbc10f7b.pngPHPExcel:頭文件充滿了giberish

並低於這我有我的HTML表格。

這裏的代碼,感謝:

$objPHPExcel = new \PHPExcel(); 
    $objPHPExcel->getProperties()->setCreator("foo"); 
    $objPHPExcel->getProperties()->setLastModifiedBy("bar"); 
    $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
    $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
    $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); 
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!'); 
    echo date('H:i:s') . " Write to Excel2007 format\n"; 
    $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel); 
    //$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 
    //$objWriter->save('a.xls'); 
    header('Content-type: application/vnd.ms-excel'); 
    header('Content-Disposition: attachment; filename="PV AAPC"'); 
    $objWriter->save('php://output'); 

回答

0

確保您沒有發送任何其他內容來輸出。確保您沒有迴音或打印語句;腳本文件中沒有BOM標題;並且在?><?php標籤之間沒有空行。

您還正在使用Excel2007 Writer(它會生成OfficeOpenXML格式.xlsx文件)寫入文件,但發送BIFF格式.xls文件的內容類型。

您需要爲OfficeOpenXML格式的.xlsx文件(使用Excel2007 Writer生成)發送內容類型標頭application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;或使用Excel5作家,如果你想創建一個BIFF格式.xls文件,這需要application/vnd.ms-excel

+0

你好,我改變了頭部,但胡言亂語仍然存在。我找到了一些東西:如果我死了''''''objWriter-> save('php:// output')之前的代碼;'一切都正常,但在'$ objWriter-> save('php://output');'那些隨機字符來了! – user2203384

+0

如果你在執行'save()'之前'死亡',當然你不會得到那個「亂碼」,因爲'save()'是把「gibberish」寫到php://輸出中的東西。當然,你也不會得到你的文件,因爲那個「亂碼」是這個文件 –

0

您發送顯示標頭就一些調試信息。

刪除「回聲日期...」一行,就可以了!

+0

您好感謝您的回覆的內容類型標題,但我還有這個亂碼:/ – user2203384

+0

你能不能給我們之前的所有代碼「$ objPHPExcel = new \ PHPExcel();」 ? (例如包含php excel庫) – griotteau

+0

你好,這個對象之前沒有任何東西。但我想我只是將文件保存在文件夾中...通過使用:'$ objWriter-> save(str_replace('。php','.xlsx',__FILE __));' – user2203384