$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('TestMessages');
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=test_form_".date("Y-m-d_H:i:s").".xls");
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
當我直接從瀏覽器調用上述代碼時,結果文件被下載。但是,如果我對上述代碼進行ajax調用,則不會得到下載提示。我可以從控制檯標籤看到ajax調用已成功完成,並且在響應數據中看到了一堆隨機字符。我假設這是excel對象。用ajax調用下載excel文件
有誰知道我如何使用ajax實現下載excel功能?我不想刷新頁面。當用戶點擊「導出」按鈕時,應該對php文件進行ajax調用並提示用戶下載。
我反駁Passing data from PHP class to PHPExcel via AJAX,但不明白如何實現我的目標?
你可以在頁面中添加一個隱藏的iframe。當ajax調用返回創建的數據的url時,使用javascript將iframe重定向到會自動觸發下載操作的那個url。 – user3263194