2017-05-08 117 views
0

有這個項目,其目的是導入一個Excel工作表:該文件是一個報告,而不是一個平面文件,並且沒有辦法獲得這樣的。所以我使用PHP Excel來讀取文件並將我們需要的數據保存到應用程序中。PHP Excel無法讀取Excel 4.0工作表

問題是文件是Excel 4.0格式,我無法編輯(顯然),它可以在MS Excel應用程序中打開和查看,但PHP Excel在嘗試使用Excel5讀取時引發異常:

Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'The filename C:/xampp/htdocs/uploads/PS.xls is not recognised as an OLE file' in C:\xampp\htdocs\includes\PHPExcel-1.8\Classes\PHPExcel\Shared\OLERead.php on line 90 

PHP的Excel識別該文件爲HTML格式,而且還引發了我的錯誤:

Warning: DOMDocument::loadHTML(): Invalid char in CDATA 0x4 in Entity, line: 1 in C:\xampp\htdocs\includes\PHPExcel-1.8\Classes\PHPExcel\Reader\HTML.php on line 495 

我想這是怎麼一回事,因爲數據中包含特殊字符(UTF-8),但一無所獲在PHPExcel中可以改變編碼......都找不到任何關於這個問題,我開始認爲這是沒有解決辦法,除了要求用戶複製&粘貼數據到「體面的」Excel文件...這種方式的作品,但需要一些手動操作...

+0

看起來像編碼is'n問題:$ objReader-> setInputEncoding('UTF-8');也沒有工作。 –

回答

1

不,它不能讀取它。 PHPExcel可以讀取的最小BIFF格式版本是BIFF 5(從1993年開始,24年前)

祝您好運,找到任何能夠讀取BIFF 4(從1992年開始)的任何內容...... BIFF 4使用OLE1,而PHPExcel只能讀取xls文件使用OLE2(從BIFF 5起)。我不知道任何可以處理這種早期格式的純PHP擴展;您可能需要使用商業LibXl擴展

+0

謝謝馬克!在這種情況下,我將不得不編寫宏或讓用戶手動複製和粘貼數據。 –