【问题标题】:PHPExcel can't read Excel 4.0 worksheetPHPExcel 无法读取 Excel 4.0 工作表
【发布时间】:2017-10-06 22:43:14
【问题描述】:

有这个旨在导入 Excel 工作表的项目:该文件是一份报告,而不是一个平面文件,并且没有办法获得这样的文件。所以我使用 PHP Excel 来读取文件并将我们需要的数据保存到应用程序中。

问题是该文件是 Excel 4.0 格式,我无法编辑(显然),它可以在 MS Excel 应用程序中打开和查看,但 PHP Excel 在尝试使用 Excel5 读取时抛出异常:

致命错误:在 C:\xampp\htdocs\includes\PHPExcel-1.8\ 中出现消息“文件名 C:/xampp/htdocs/uploads/PS.xls 未被识别为 OLE 文件”的未捕获异常“PHPExcel_Reader_Exception”第 90 行的 Classes\PHPExcel\Shared\OLERead.php

PHP Excel 将文件识别为 HTML 格式,但也会向我抛出错误:

警告: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 文件中......这种方式有效,但需要一些手动操作。

【问题讨论】:

  • 看起来编码不是问题:$objReader->setInputEncoding('UTF-8');也没有用。

标签: php excel phpexcel excel-4.0


【解决方案1】:

不,它无法读取它。 PHPExcel 可以读取的最低 BIFF 格式版本是 BIFF 5(从 1993 年开始)。

祝你好运找到任何能够读取 BIFF 4(从 1992 年开始)的东西。 BIFF 4 使用 OLE1,而 PHPExcel 只能使用 OLE2 读取 .xls 文件(从 BIFF 5 开始)。我不知道任何可以处理这种早期格式的纯 PHP 扩展;您可能需要使用商业 LibXl 扩展。

【讨论】:

  • 谢谢马克!在这种情况下,我将不得不编写一个宏或让用户手动复制和粘贴数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多