gpt4 book ai didi

php - 使用ajax调用下载excel文件

转载 作者:行者123 更新时间:2023-12-01 03:11:41 25 4
gpt4 key购买 nike

$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功能?我不想刷新页面。当用户单击“导出”按钮时,应该有一个对 php 文件的 ajax 调用并提示用户下载。

我建议Passing data from PHP class to PHPExcel via AJAX但不明白如何实现我的目标?

最佳答案

PHP

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
ob_start();
$objWriter->save("php://output");
$xlsData = ob_get_contents();
ob_end_clean();

$response = array(
'op' => 'ok',
'file' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData)
);

die(json_encode($response));

JS

$.ajax({
type:'POST',
url:"MY_URL.php",
data: {},
dataType:'json'
}).done(function(data){
var $a = $("<a>");
$a.attr("href",data.file);
$("body").append($a);
$a.attr("download","file.xls");
$a[0].click();
$a.remove();
});

关于php - 使用ajax调用下载excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27685507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com