我有关于我想,我希望你能帮助我这个并不在其中工作的PHP库的一些问题。
我的程序首先调用通过Ajax返回一个.json.Then与given.json我需要将其保存在XLS服务excel文件,这个我在使用其他AJAX其调用PHP服务在本地保存它(generarExcel2 .PHP)
下面是我的HTML代码,实际上工作正常的JS / AJAX的一部分。
$(document).ready(function () {
var exceljsondatos;
var path ="{{urlSf}}";
$.ajax({
type: "POST",
url: path,
dataType: 'json',
success: function (data) {
exceljsondatos = data;
$('#genExcel').click(function () {
$.ajax({
type: "POST",
url: "generarExcel2.php",
data: exceljsondatos,
success: function (resultado) {
$('#resp').html(" Function call successful"); }
});//End exel ajax call
});//End click event
}//End of success
});//End ajax data call
}); //End of document ready
这显示了我的HTML正确的消息,如此看来,在这方面的工作。在我的PHP我已经通过正确的var_dump检查其recieving的$ _ POST内容,但来这里的主要问题。
我不能设法提示用户保存数据。我已经使用作家试图与IOFactory,没有在这里工作是PHP代码,以便你可以去看看。
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;//Option1
//use PhpOffice\PhpSpreadsheet\Writer\Xls;//Option2
$filename="Excel_jano_test";
$spreadsheet = new Spreadsheet();
$excel_writer = IOFactory::createWriter($spreadsheet, 'Xls');//Option1
//$excel_writer = new Xls($spreadsheet); //Option2
$activeSheet = $spreadsheet->getActiveSheet();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'. $filename .'.xls"');
header('Cache-Control: max-age=0');
$activeSheet->setCellValue('A1' , 'NUM.SOLICITUD');//example for dummy
$excel_writer->save('php://output');//THIS SHOULD PROMPT USER
我试着最后一行更改为$ excel_writer->保存(“otherfile.xls”);它在服务器上正确保存更改。如果你能看到什么我不能,我将不胜感激。非常感谢!
还有一件事。我检查了,如果我的路线上单击如实际工作,并提示用户,但这样它不会是短暂的或recieving数据。
“这是不可能的使用AJAX时强制下载。”找到这个答案在这里类似的问题:https://stackoverflow.com/a/10191727/10551975
无论如何,我仍然认为有可能是一个可能的解决方法这将是更受欢迎。我会离开这个开放几天,以防万一有人可以帮我给他的功劳。
编辑:最后我用一个空的形式,装载了与阿贾克斯的数据,然后使用定期提交按钮。不是我想要的,但工作得很好。