【问题标题】:PhpSpreadsheet cannot read specific xls filePhpSpreadsheet 无法读取特定的 xls 文件
【发布时间】:2019-11-14 13:41:13
【问题描述】:

以下错误 Fatal error: Uncaught PhpOffice\PhpSpreadsheet\Reader\Exception: Parameter pos=-12 is invalid 在尝试解析特定的 xls 文件时给出。

代码

$inputFileName = "excel.xls";
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xls');
$spreadsheet = $reader->load($inputFileName);

有问题的文件:https://filebin.net/sle19tm0kdgduyne/excel.xls?t=u0itbeue

我尝试使用所有可用的阅读器,例如 XlsxCsv 等,甚至使用旧的已弃用的 PHPExcel 库。没有任何东西可以解析这个特定的文件,即使它在 windows 上用 excel 打开也很好。

我的最终目标是将此 xls 文件转换为数组,以便将数据粘贴到数据库中。

【问题讨论】:

  • 您是否尝试过仅读取单元格数据、忽略样式、数据验证……:$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();$reader->setReadDataOnly(true);$spreadsheet = $reader->load($inputFileName); - 建议 Read data only
  • @lovelace 不,但我只是试了一下,得到了同样的错误。

标签: php phpspreadsheet


【解决方案1】:

我认为你不需要使用createReader()

这是我工作代码的示例。

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
$spreadsheet = $reader->load('path/to/file.xls');

希望对你有帮助。

【讨论】:

  • 这给出了相同的错误,并且代码与我已经拥有的代码几乎相同。唯一的区别是我使用 IoFactory 类来获取 Xls 读取器对象。
  • 抱歉帮不上忙。我不知道问题到底出在哪里,在我的项目中一切正常。
猜你喜欢
  • 2019-02-18
  • 2019-05-02
  • 2021-04-01
  • 1970-01-01
  • 2019-05-18
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多