私は何時間も検索し、何十ものページを熟読して答えを見つけようとしました.
PHPexcel を使用して、サーバーに Excel 2007 .xlsx ファイルとして保存するスプレッドシートを生成しています。.xlsx ファイルをサーバーから直接ダウンロードして自分のコンピューターで開くと、問題なく開きます。問題ない。
php スクリプトを使用して (経由で) ファイルをダウンロードするとreadfile()
、MS Excel で「このファイルは破損しています...」というメッセージが表示されます。
さて、2 つのファイルを 16 進ファイルで比較しましたが、明らかな違いはありません!
これは、私のubuntuサーバー(php 5.3.2を実行)とwampserver(PHP 5.3.13を実行するWindows 8、64ビット環境)で発生します。
readfile(); の前に \t または \n またはその他の出力が送信されていないことを確認するために、すべてをチェックしました。
出力が送信されていないことを確認するために、ob_start と ob_end_clean() を使用しました。
問題のある php_zip.dll バイナリで PHP v 5.2.8 を使用していません。
そしてこれをゲット!、 狂ってる。
MS Excel プログラムを使用して Excel ファイルを作成したこともあります。ファイルに問題はありません。サーバーに直接アップロードし、リンクから直接アクセスします。ダウンロードして開こうとすると、「ファイルが壊れているため開けません」というメッセージが表示されます。
試してみたい場合の直接リンクは次のとおりです。http://db.doanddare.org/Lyv6r_y7echVnAcUG4fGUw/testing.xlsx
はい、Excel で作成してアップロードしたばかりのテスト ファイルへの直接リンクです。ここには PHP 処理やヘッダーは含まれていません。
スタック オーバーフローは私の最後の手段です。助けてくれてありがとう。
ああ、私はExcel 2013プレビューを使用しています.