【发布时间】:2014-12-30 08:30:18
【问题描述】:
App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('ReceivedMessages');
header('Content-Type: application/vnd.ms-excel');
$file_name = "kpi_form_".date("Y-m-d_H:i:s").".xls";
header("Content-Disposition: attachment; filename=$file_name");
// 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 功能?我不想刷新页面。当用户点击“导出”按钮时,应该有一个对php文件的ajax调用,并提示用户下载。
【问题讨论】: