PHPExcel を使用して、非常に単純な .xls ファイル ( PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5')) を生成しています。Excel 2010 または 2007 を使用して Windows 7 でそのファイルを開くと、次のエラーが表示されます。
Excel は、'XXXXXXX.xls' に判読できないコンテンツを検出しました。このブックの内容を復元しますか? このブックの発行元が信頼できる場合は、[はい] をクリックします。
Windows XP の Excel 2010 で同じファイルを開くと、正常に動作します。同じファイルを OpenOffice で開くと、OS に関係なく動作します。
Windows 7 / Excel 2010: エラー
Windows 7 / Excel 2007: エラー
Windows XP / Excel 2010: 動作します
Windows XP / Excel 2007: 動作します
すべて / OpenOffice: 動作します
PHPExcel に .xlsx ファイル ( PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007')) を生成するように指示すると、上記のすべての組み合わせで問題なく動作します。
MS フォーラムで無数のスレッドを見つけましたが、(PHPExcel だけでなく) サード パーティ ライブラリによって生成された Excel ファイルを含む Windows 7 ファイルのみに影響するようです。しかし、誰も解決策を持っていません。
次の MS KB 記事も見つけましたが、基礎となる Excel の仕様に詳しくありません: http://support.microsoft.com/kb/2411912
他の誰かがこれを経験しましたか?