微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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下载链接.

原文地址:https://www.jb51.cc/ajax/160176.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐