7

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

他の誰かがこれを経験しましたか?

4

3 に答える 3

2

MSサポートサイトで強調した問題である場合は、PHP_OLEの内部のどこか、おそらくPHPExcel_Shared_OLE_PPS_Fileクラスでロックされています。私はこれをPHPExcelサイトでIssue15508として提起、週末にWindows7ボックスでデバッグを実行しようとします。

迅速な修正を保証するものではありません。しかし、問題を再現する方法と、どこを見ればよいかについての指針を教えてくれました。

于 2011-03-10T23:05:44.030 に答える
1

UTF-8タイトル、作成者、LastModifiedby などのフィールドを使用して記述する必要があります。これが私の解決策でした。

于 2012-05-06T16:47:45.327 に答える