PHPExcelでテンプレートを読み込もうとするとエラー(500)になります。
書き込みは可能なのですが、読み込みできません。
XAMPPでのテストでは読み込めるのですが、XREAサーバーではできません。
ソースは以下の通りです。
$fileNameTmp = 'file_tmp.xlsx';
$reader = PHPExcel_IOFactory::createReader( 'Excel2007' );
$ex = $reader->load( $fileNameTmp ); // ここでエラー
対処方法をご教示ください。
宜しくお願い致します。
コメント(4件)
同階層に「file_tmp.xlsx」は存在しますか?
「file_tmp.xlsx」は間違いなくExcel2007形式でしょうか?(どのように作成したのでしょう?)
ご回答ありがとうございます。
・エラーMsgは「Web サイト側でページを表示できません(HTTP 500 内部サーバー エラー )」です。
・同階層にファイルは存在します。同階層の書き込みファイルには、別のテストで書き込み可能です。
・Excel形式の件ですが、私のExcelは「2010」ですが「2007」では読み込めないのでしょうか?また、作成したのはWindows7上ですが、どのように作成したら良いのでしょうか?
お手数ですが、ご回答の程、何卒宜しくお願い致します。
エラー行を確認した画面(あるいはファイル?)に表示されているメッセージを確認してみてください。
このライブラリで作成したExcel2007形式のファイルではなく、Office Excel 2010で作成したファイルという事でしょうか?
Excel 2010で保存したファイルをExcel 2007で開く場合にも、一部失われるデータや機能があるようです。
ライブラリでExcelの機能を完全に実装するのは非常に難しいと思いますので、対応していないデータや機能が含まれる場合は、読み込む事自体ができない可能性もあるのではないかと思います。
ライブラリで作成したExcel2007形式のファイルの読み込みの可否を確認してみてください。
※2007で対応していない2010の機能については、次のページを確認してください。(「以前のバージョンの Excel でサポートされない Excel 2010 の機能」参照)
※2007との互換性を確認するには、互換性チェックを手動で実行するといいようです。(「Excel 2010 のブックをチェックして以前のバージョンの Excel との互換性を確認する」参照)
・以前のバージョンの Excel で Office Excel 2010 ファイルを使用する
http://office.microsoft.com/ja-jp/excel-help/HA010342994.aspx
※このライブラリがExcel2007を完全にサポートしているかどうかは分かりませんので、互換性の問題がない場合でも開く事のできないファイルがあるかもしれません。
なるべくライブラリで作成したファイルを利用した方がいいように思います。
ご回答ありがとうございます。
・この問題は、OfficeExcel2010で作成したファイルを使用しています。
・エラーを捕捉した結果、下記のメッセージが表示されました:
「*** glibc detected *** malloc(): memory corruption: 0x08a2d068 ***」
・次に、ライブラリで作成したファイルを読み込んだ結果は以下です:
「*** glibc detected *** malloc(): memory corruption (fast): 0x08a2d130 ***」
XREAサーバーでも「new PHPExcel()」での書き出しは成功していますし、
Windows上のXAMPPでは読み書き共に可能です。
また、ライブラリで書き出したファイルを読み込みに利用するのは、
テンプレート利用のメリットがなくなります。書き出したプログラムを
そのまま利用できますから。
今回は全てプログラムで書き出しましたが、今後の対応はテンプレートで
簡素化したいものです。