yii2 プロジェクトで phpoffice/phpexcel プラグインを使用して Excel ファイルを読み取ろうとしています。拡張子が xls のファイルの場合、プラグインは完全に機能し、コンテンツを読み取ることができますが、日本語のファイル名と拡張子が xlsx のファイルを使用しようとすると、次のようなエラーが表示されます。
DOMDocument::loadHTML(): エンティティの CDATA 0x3 の無効な文字、行: 1。
PHPExcel_IOFactory::identify について調べてみました。関数を調べたところ、IOFactory クラスの createReaderForFile に出会いました。ここで設定されている拡張子の種類を確認すると、「Excel2007」と表示されていますが、何らかの理由で、プロセスの最後に、ファイルはまだ HTML として識別されます。
問題をさらに説明するために、私のファイルの拡張子と名前は異なりますが、基本的には次のように同じ内容です。
col1 col2 col3
aaaa bbbb cccc
ファイルは次のとおりです。
- あああ.xls(読めます)
- あああ.xlsx(読めません)
- aaaa.xls (読み取り可能)
- aaaa.xlsx (読み取り可能)
あああ.xlsxだけ読めませんが他は問題ありません。これは phpoffice/phpexcel プラグインに対するある種の制限ですか? もしそうなら、xlsx と xls ファイルの両方を正しく読めるようにする他の yii2 拡張機能を提案してもらえますか? または、ファイルを正しく識別できるようにこれを修正する方法はありますか?