Yii2:phpoffice / phpexcel将.xlsx文件标识为HTML
我正在尝试为我的yii2项目使用phpoffice / phpexcel插件来读取excel文件。 对于带有xls扩展名的文件,插件工作正常,我可以读取内容,但是当我尝试使用带有日语文件名和xlsx扩展名的文件时,它给了我一个这样的错误:
DOMDocument :: loadHTML():实体中的CDATA 0x3中的无效字符,行:1。
我试图调查PHPExcel_IOFactory :: identify。 调查函数,我遇到了IOFactory类中的createReaderForFile,并在检查这里设置的扩展types时,它说“Excel2007”,但由于某种原因,在过程的最后,该文件仍被标识为HTML。
为了进一步描述这个问题,我的文件有不同的扩展名和名称,但基本上是这样的内容:
col1 col2 col3 aaaa bbbb cccc
这些文件如下:
- あああ.xls(可以阅读)
- あああ.xlsx(不能被读取)
- aaaa.xls(可以读取)
- aaaa.xlsx(可以读取)
只有あああ.xlsx不能阅读,但其余的都很好。 这是对phpoffice / phpexcel插件的某种限制吗? 如果是这样,你能build议其他yii2扩展,这将使我能正确地阅读xlsx和xls文件? 还是有一些方法来解决这个问题,以便它可以正确识别文件?
请记住这个扩展的文件之间的区别,在这个答案中最好的解释。
您必须使用正确的Writer / Reader: Excel2007
for xlsx
和Excel5
for xls
。
我已经设法解决这个问题。 这个问题似乎是关于zip文件上的文件编码,join\PHPExcel_Settings::setZipClass(\PHPExcel_Settings::PCLZIP);
在PHPExcel_IOFactory :: identify之前解决了它。