PHPExcel の save メソッドを使用する場合
// xls ファイルとして保存しますが、これはサーバーにのみ保存されるため、手動でローカルにダウンロードする必要があります。
$writer->save('製品リスト.xls');
直接ダウンロード:
if ($this->fileVersion == 'Excel5') {
header('Content-Type: application/vnd.ms-excel'); // xls形式でファイルを出力します。
header('Content-Disposition:attachment;filename="' . $config['fileName'] . '.xls"'); // 出力ファイルの名前をブラウザに通知します。
} それ以外 {
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // xlsx 形式でファイルを出力します
header('Content-Disposition:attachment;filename="' . $config['fileName'] . '.xlsx"'); // 出力ファイルの名前をブラウザに通知します。
}
// IE 9 にサービスを提供している場合は、次のものが必要になる場合があります
header('キャッシュ制御: max-age=1');
// SSL 経由で IE にサービスを提供している場合は、次のものが必要になる場合があります
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // 過去の日付
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('キャッシュ制御: キャッシュ、必須再検証'); // HTTP/1.1
header('プラグマ: public'); // HTTP/1.0
$writer->save('php://output');
エクスポートされた xls ファイルは、php://output を通じて直接ダウンロードできます。xls ファイルはサーバー上に生成されません。
ただし、ダウンロード時にエラーが直接報告されます。このエラーはブラウザーで報告されます。開発者ツールがネットワークに表示されましたが、ファイルのダウンロード操作をトリガーしませんでした
< /p>
この文字化けしたコードがヘッダーの直前にある場合、print_r($writer);
はオブジェクト $writer; を認識しません。コード> 文字化け
この質問について非常に混乱しています
この方法ではエクスポートされたファイルを直接ダウンロードできますが、Ajaxは使用できません
header('Content-Type: application/vnd.ms-excel');
改为header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
改为header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');