php - Yii2:phpoffice/phpexcel 将 .xlsx 文件识别为 HTML

标签 php excel yii2 phpexcel phpoffice

我正在尝试为我的 yii2 项目使用 phpoffice/phpexcel 插件来读取 excel 文件。对于带有 xls 扩展名的文件,该插件工作正常,我能够读取内容,但是当我尝试使用带有日语文件名和 xlsx 扩展名的文件时,它会给我一个错误,如下所示:

DOMDocument::loadHTML(): Invalid char in CDATA 0x3 in Entity, line: 1.

我尝试调查 PHPExcel_IOFactory::identify。在研究该函数时,我在 IOFactory 类中遇到了 createReaderForFile,当检查此处设置的扩展类型时,它显示为“Excel2007”,但由于某种原因,在该过程的最后,该文件仍然被标识为 HTML。

为了进一步描述该问题,我的文件具有不同的扩展名和名称,但内容基本相同,如下所示:

col1               col2           col3
aaaa               bbbb           cccc

文件如下:

  1. あああ.xls(可阅读)
  2. あああ.xlsx(无法读取)
  3. aaaa.xls(可读)
  4. aaaa.xlsx(可读)

只有あああ.xlsx看不懂,其他都好。这是对 phpoffice/phpexcel 插件的某种限制吗?如果是,您能否建议其他 yii2 扩展,使我能够正确读取 xlsx 和 xls 文件?或者有什么方法可以解决这个问题,以便它可以正确识别文件?

最佳答案

我现在已经解决了这个问题。该问题似乎与 zip 文件上的文件编码有关,在 PHPExcel_IOFactory::identify 修复之前添加 \PHPExcel_Settings::setZipClass(\PHPExcel_Settings::PCLZIP);

关于php - Yii2:phpoffice/phpexcel 将 .xlsx 文件识别为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40797346/

相关文章:

mysql - excel自动公式计算

excel - Excel VBA Vlookup复制其他表中不存在的条目的先前条目数据

php - Yii2 消息 : What does @@ mean?

php - yii2 - 模型加载函数没有设置一些模型属性

php - 如何为特定部门随机化产品?

php - 语法错误或访问冲突 : 1064

PHP - 检测远程主机断开连接

php - 多个文件上传不将每个路径保存在数据库中

excel - TEXT 公式中的日期格式与 Excel 中使用的语言无关

sql - 如何在 Yii2 中使用 Migration 创建复合主键?