关于此php库,我遇到了一些问题,该库无法正常运行,希望您可以帮助我解决这个问题。
我的程序首先通过ajax调用服务,该服务返回一个.json。然后使用给定的.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正确接收$ _POST内容的能力,但这是主要问题。
我无法提示用户保存数据。 我试过使用writer和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-> save('otherfile.xls');并将更改正确保存在服务器上。 如果您能看到我不能提供的信息,我将不胜感激。非常感谢!
还有一件事。我已经检查过,如果我点击了诸如实际可行的路线和提示用户之类的路线,但这种方式将不会传递或接收数据。
答案 0 :(得分:0)
“使用AJAX时无法强制下载。” 在这里找到类似问题的答案: https://stackoverflow.com/a/10191727/10551975
无论如何,我仍然认为可能存在一种可能的解决方法,这将非常受欢迎。我将再开放几天,以防万一有人可以帮助我进一步给予他荣誉。
编辑:我最终使用了一个空表格,其中的数据已加载了ajax,然后使用了常规的提交按钮。不是我想要的,但是效果很好。