PHPExcel を使用して Excel テンプレートを読み取り、データを入力し、ユーザーにファイルのダウンロードを依頼しています。
generate_excel.php
$objPHPExcel = PHPExcel_IOFactory::load("./template.xlsx");
//populate data ...
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
ブラウザから直接 generate_excel.php を開くと、結果ファイルがダウンロードされます。しかし、generate_excel.php に対して ajax 呼び出しを行うと、ダウンロード プロンプトが表示されません。Chrome 開発者ツールを使用すると、[ネットワーク] タブから、ajax 呼び出しが正常に完了し、応答データにランダムな文字が多数表示されていることがわかります。私はそれがExcelオブジェクトであると仮定しています。
ajaxを使用してExcelのダウンロード機能を実現する方法を知っている人はいますか? ページを更新したくありません。ユーザーが「エクスポート」ボタンをクリックすると、php ファイルへの ajax 呼び出しが行われ、ユーザーにダウンロードを促す必要があります。
ありがとう!