Yii2: phpoffice/phpexcel identifies .xlsx file as HTML
我正在尝试为我的yii2项目使用phpoffice / phpexcel插件来读取Excel文件。对于具有xls扩展名的文件,该插件可以正常工作,并且我能够读取内容,但是当我尝试使用具有日语文件名和xlsx扩展名的文件时,它给了我这样的错误:
DOMDocument::loadHTML(): Invalid char in CDATA 0x3 in Entity, line: 1.
我尝试调查PHPExcel_IOFactory :: identify。在研究该功能时,我在IOFactory类中遇到了createReaderForFile,并且在检查此处设置的扩展类型时,它显示为" Excel2007",但由于某种原因,在该过程的最后,该文件仍被标识为HTML。
为了进一步说明问题,我的文件具有不同的扩展名和名称,但内容基本相同,如下所示:
1 2 | col1 col2 col3 aaaa bbbb cccc |
文件如下:
仅あああ.xlsx无法读取,但其余都可以。这对phpoffice / phpexcel插件有某种限制吗?如果是,您是否可以建议其他yii2扩展名使我能够正确读取xlsx和xls文件?还是有某种方法可以解决此问题,以便它可以正确识别文件?
我已经设法解决此问题。 问题似乎与zip文件上的文件编码有关,在PHPExcel_IOFactory :: identify之前添加
请记住,这些扩展名的文件之间是有区别的,最好在此SO答案中加以说明。
您必须使用适当的Writer / Reader: