header("Content-Type: application/vnd.ms-Excel; charset=utf-8");
header("Content-type: application/x-msexcel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xsl");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"
これは、phpを使用してxslファイルを記述およびダウンロードするコードです。
私の問題は、Excelファイルを開くときMS-Excelがファイルを開く前に警告を表示することです
開こうとしているファイルは、ファイル拡張子... Blah blahで指定されたものとは異なる形式です
PHPこの警告を削除するコードとはどうすればよいですか?内容は正しく記述されています。
これは、ファイルに書き込まれたコンテンツがtxtファイルのコンテンツであり、ファイル拡張子が正しくない、つまりxlsだからです。溶液?
ライブラリを使用することを提案しないでください。
複数のContent-Type
ヘッダーを提供しています。 application/vnd.ms-Excel
で十分です。
また、構文エラーもいくつかあります。 echoステートメントで;
を使用してステートメントを終了し、ファイル名拡張子を間違えます。
header("Content-Type: application/vnd.ms-Excel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xls"); //File name extension was wrong
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"; //no ending ; here
これを試して
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename=\"filename.xlsx\"");
header("Cache-Control: max-age=0");
PHPスクリプトの最後にexit;
を追加してみてください。