$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