質問: 「PHPExcel.php」によってエクセルデータを解析しているのですが、 ファイルによって、以下のエラーが出て解析しなくなってしまいます。 Warning: DOMDocument::loadHTMLFile(): Invalid char in CDATA 0x3 in hogehoge.xlsx, line: 1 in /usr/home/xxxxx/www/htdocs/user/Classes/PHPExcel/Reader/HTML.php on line 428 Warning: DOMDocument::loadHTMLFile(): Invalid char in CDATA 0x4 in .hogehoge.xlsx, line: 1 in /usr/home/xxxxx/www/htdocs/user/Classes/PHPExcel/Reader/HTML.php on line 428 Warning: DOMDocument::loadHTMLFile(): Invalid char in CDATA 0x14 in .hogehoge.xlsx, line: 1 in /usr/home/xxxxx/www/htdocs/user/Classes/PHPExcel/Reader/HTML.php on line 428 回避策はないのでしょうか?
回答: xlsx形式のファイルはxmlをzipで固めたものです。 拡張子をzipに変えて開き、中の「_rels\.rels」に「Type="" Target="xl/workbook.xml"」という記述がありませんか? もしzipで開けない、上記のファイルがない、記述がないとなるとPHPExcelはxlsxとして認識しません。ファイルが壊れていないか、暗号化されていないか確認してください。 もしファイルが開ける、記述もあるという場合、phpでzipがうまく開けないのかも知れません。 zipのライブラリやphpのバージョンが新しいか確認してみてはどうでしょう。