2017-05-08 110 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

谢谢马克!在这种情况下,我将不得不编写宏或让用户手动复制和粘贴数据。 –