使用ajax调用下载PHPExcel

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调用,并提示用户进行下载。

回答:

在您的ajax成功函数中添加target = _blank,如下所示

success: function(){

window.open('http://YOUR_URL','_blank' );

},

否则,您可以使用jQuery触发功能或类似功能巧妙地在新标签中打开Excel下载链接。

以上是 使用ajax调用下载PHPExcel 的全部内容, 来源链接: utcz.com/qa/408862.html

回到顶部