2015-04-16 75 views
1

我試圖用PHPExcel庫,使用此代碼創建一個新的Excel文件的新文件:PHPExcel創建

include ('/lib/PHPExcel/PHPExcel/IOFactory.php'); 
    include ('/lib/PHPExcel/PHPExcel.php'); 

    $objPHPExcel = new PHPExcel(); 
    $objPHPExcel->getProperties() 
    ->setCreator("admin") 
    ->setLastModifiedBy("admin") 
    ->setTitle("Test") 
    ->setSubject("template file") 
    ->setDescription("template file") 
    ->setKeywords("Prout"); 
    $objPHPExcel->setActiveSheetIndex(0); 
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); 
    $objPHPExcel->getActiveSheet()->setTitle('Simple'); 
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
    $objWriter->save(dirname(__FILE__).'/file/test.xlsx'); 

的文件被創建,但是當我嘗試打開它在我的Excel 2010中告訴我有是文件內的不可讀內容,我無法打開它。

我在另一個論壇上嘗試了不同的方式,但我總是得到相同的結果。我通過在jQuery中使用Ajax來完成這個操作。這可能是這個錯誤的原因嗎?

+0

嘗試設置標題以及它應該解決您的問題。 –

+0

您正在將此文件保存在Web服務器上,那麼Ajax會在哪裏出現? –

+0

我告訴你的代碼是由jQuery的幫助調用ajax,我已經嘗試把一些標題把它的強制dowload不?它不適用於ajax。解決這個問題後,我會找到解決這個問題的方法。 Peraphs我可以不通過Ajax,但我不希望用戶離開頁面時,他試圖下載文件 – Kvasir

回答

2

我發現如何解決我的問題......但只有一半。因爲它與此代碼的工作:

$objPHPExcel = new PHPExcel(); 
    $objPHPExcel->getProperties() 
    ->setCreator("Temporaris") 
    ->setLastModifiedBy("Temporaris") 
    ->setTitle("Template Relevé des heures intérimaires") 
    ->setSubject("Template excel") 
    ->setDescription("Template excel permettant la création d'un ou plusieurs relevés d'heures") 
    ->setKeywords("Template excel"); 
    $objPHPExcel->setActiveSheetIndex(0); 
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12"); 

    $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
    header('Content-Type: application/vnd.ms-excel'); 
    header('Content-Disposition: attachment;filename="excel.xls"'); 
    header('Cache-Control: max-age=0'); 
    $writer->save('php://output'); 

但它Excel5不是Excel2007中,當我remplace Excel5通過Excel2007中我有同樣的錯誤消息。

+0

評論不適合長時間討論;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/75530/discussion-on-answer-by-kvasir-phpexcel-creat-a-new-file)。 – Taryn

+0

嗯,我已經檢查了xlsx文件:zip索引是完整的,但是單個文件在crc檢查時失敗,所以就好像ZipArchive在編寫時以某種方式損壞了單個文件(或至少它們的crc32值)...這不是我能解釋的 –

0

你試過這個嗎?

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);