2012年05月11日

PEAR の SpreadSheet_Excel_Write で作ったファイルが開けないとき

PEAR の SpreadSheet_Excel_Write で作成した XLS ファイルが Excel2007 で開けないという事態になりました。環境は以下の通りです。

apache 2.3.3
PHP 5.1.6
Spreadsheet_Excel_Writer 0.9.3
OLE 1.0.0RC2

以下のような状況になりました。
WindowsXP 上の Excel2007 では問題なく開ける。
Windows7 上の Excel2007 ではエラーメッセージが表示され、表示されたシートに書式が反映されていない。
ただし、エラーになるのはデータを13件以上出力したシートのみ。12件以下のデータを出力したシートではWindows7 + Excel2007 の環境でもエラーにならない。

最初に表示されるメッセージは「ファイル.xls には読み取れない内容が含まれています。このブックの内容を回復しますか? ブックの発行元が信頼できる場合は、[はい] をクリックしてください。」
errormessage.png

「はい」をクリックして表示されるメッセージは「読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。」「数式とセルの値が回復されましたが、一部のデータが消失した可能性があります。」
errordetail.png

解決方法
PEAR の OLE 1.0.0RC2 をアンインストールし、OLE 1.0.0RC1 をインストールする。

以下は蛇足。

状況から下記の点について疑い、調査しましたが結果的に関係ありませんでした。
・データ出力の量によってエラーになる?→関係なし
・WinXP と Win7 で XLS ファイルをダウンロードしたブラウザの挙動が違う?→関係なし

「spreadsheet_excel_writer corrupted」でググったところ、OLE の RC1 と RC2 で違いが出るような情報が見つかったので試してみたら、それがビンゴでした。


posted by はるこち at 10:21| Comment(1) | TrackBack(0) | 開発関係 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
どうも初めまして。
私も同じ現象でハマってましたので助かりました。

数件出力するぶんには問題が起こらないというのが質悪い!まさかOLEで解消するとは、、、
ありがとうございました。
Posted by ボケ猫 at 2012年07月31日 09:48
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。